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.

Updated on: 2026-03-15T13:08:58+05:30

911 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements