Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Finding number of alphabets, digits and special characters in strings using C language
In C programming, we can analyze a string to count different types of characters - alphabets, digits, and special characters. This is useful for string validation and data processing tasks.
Syntax
for(i = 0; string[i] != '\0'; i++) {
if((string[i] >= 'a' && string[i] <= 'z') || (string[i] >= 'A' && string[i] <= 'Z'))
// Count alphabets
else if(string[i] >= '0' && string[i] <= '9')
// Count digits
else
// Count special characters
}
Method 1: Using Character Range Comparison
This approach checks each character against ASCII ranges to classify them −
#include <stdio.h>
int main() {
char string[100] = "Hello123@World!";
int alphabets = 0, digits = 0, special = 0;
int i;
printf("String: %s<br>", string);
for(i = 0; string[i] != '\0'; i++) {
if((string[i] >= 'a' && string[i] <= 'z') || (string[i] >= 'A' && string[i] <= 'Z')) {
alphabets++;
}
else if(string[i] >= '0' && string[i] <= '9') {
digits++;
}
else {
special++;
}
}
printf("Alphabets: %d<br>", alphabets);
printf("Digits: %d<br>", digits);
printf("Special characters: %d<br>", special);
return 0;
}
String: Hello123@World! Alphabets: 10 Digits: 3 Special characters: 2
Method 2: Using ctype.h Functions
Using standard library functions provides more reliable character classification −
#include <stdio.h>
#include <ctype.h>
int main() {
char string[100] = "Code@123$";
int alphabets = 0, digits = 0, special = 0;
int i;
printf("String: %s<br>", string);
for(i = 0; string[i] != '\0'; i++) {
if(isalpha(string[i])) {
alphabets++;
}
else if(isdigit(string[i])) {
digits++;
}
else {
special++;
}
}
printf("Alphabets: %d<br>", alphabets);
printf("Digits: %d<br>", digits);
printf("Special characters: %d<br>", special);
return 0;
}
String: Code@123$ Alphabets: 4 Digits: 3 Special characters: 2
Key Points
- Character ranges: 'a'-'z' for lowercase, 'A'-'Z' for uppercase, '0'-'9' for digits
- ctype.h functions: isalpha(), isdigit() are more portable and handle locale-specific characters
- Special characters: Include spaces, punctuation, and symbols that are neither letters nor digits
Conclusion
Both methods effectively count character types in strings. The ctype.h approach is preferred for better portability and locale support, while manual range checking offers direct control over classification logic.
Advertisements
