by Dinesh Thakur Category: C Programming (Pratical)

Let us use an array of characters (str) to store the string and variables nletter, ndigit, nspace and nother to count the letters, digits, white spaces and other characters, respectively.

 The program given below first reads a string from the keyboard using the gets function and then uses a while loop to determine the desired counts. An if-else-if statement is used within the while loop to test the ith character and update the respective counter. Note the use of variable ch to minimize access to the array element (possibly improving its efficiency) as well as to improve the readability of the code. Finally, the program prints the counts.

/* Count letters, digits, whitespaces and other chars in a given string */
#include <stdio.h>
void main()
{
      char str [81];
      int nletter, ndigit, nspace, nother; /* char counts */
      int i;
      clrscr();
      printf("Enter a line of text:\n");
      gets(str);
      /* count characters in string str */
      nletter = ndigit = nspace = nother = 0; /* init counts */
      i = 0;
      while (str[i] != '\0')
          {
              char ch= str[i];
              if (ch>= 'A' && ch<= 'Z' || ch>= 'a' && ch<= 'z')
              nletter++;
              else if (ch>= '0' && ch<= '9')
                       ndigit++;
              else if (ch == ' ' || ch =='\n' || ch == '\t')
                       nspace++;
              else nother++;
                       i++;
          }
              /* print counts */
              printf("Letters: %d \tWhite spaces : %d", nletter, nspace);
              printf(" Digits : %d \tOther chars : %d\n", ndigit, nother);
              getch();
}
The output of the program is given below
               C Program to Count Digits,White Space,Others


About Dinesh Thakur

Dinesh ThakurDinesh Thakur holds an B.SC (Computer Science), MCSE, MCDBA, CCNA, CCNP, A+, SCJP certifications. Dinesh authors the hugely popular blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps. For any type of query or something that you think is missing, please feel free to Contact us.