9.1k views
5 votes
How to write a function that counts the letters in a string in C?

1 Answer

6 votes

Answer:

Here is the C function that counts the letters in a string:

int LetterCount(char string[]){ //function to count letters in a string passed as parameter

string[100]; // char type string with size 100

int i, letters; // letter variable stores the count for no. of letters in string

i = letters = 0; //initialize variables i and letters to 0

while (string[i] != '\0') { // loop iterates through the entire string until end of string is reached

if( (string[i] >= 'a' && string[i] <= 'z') || (string[i] >= 'A' && string[i] <= 'Z') ) { // if condition checks the letters in the string

letters++; } // increments 1 to the count of letters variable each time a letter is found in the string

i++; } //increments value of i to move one character forward in string

printf("Number of Letters in this String = %d", letters); // displays the number of letters in the string

return 0; }

Step-by-step explanation:

Here the question means that the function should count the letters in a string. So the letters are the alphabets from a to z and A to Z.

Here is the complete program:

#include <stdio.h> // to use input output functions

int LetterCount(char string[]){ // method that takes a character string as parameter and counts the letters in the string

string[100];

int i, letters;

i = letters = 0;

while (string[i] != '\0') {

if( (string[i] >= 'a' && string[i] <= 'z') || (string[i] >= 'A' && string[i] <= 'Z'))

{letters++; }

i++; }

printf("Number of Alphabets in this String = %d", letters);

return 0;}

int main(){ // start of main function

char string[100]; //declares a char array of string

printf("Please Enter a String : "); //prompts user to enter a string

fgets(string,100,stdin); //get the input string from user

LetterCount(string); } // calls method to count letters in input string

I will explain this function with an example

Lets suppose the user input "abc3" string

string[100] = "abc3"

Now the function has a while loop that while (string[i] != '\0') that checks if string character at i-th position is not '\0' which represents the end of the character string. As value of i = 0 so this means i is positioned at the first character of array i.e. 'a'

At first iteration:

i = 0

letter = 0

if( (string[i] >= 'a' && string[i] <= 'z') || (string[i] >= 'A' && string[i] <= 'Z') ) if condition checks if the character at i-th position of string is a letter. As the character at 0-th position of string is 'a' which is a letter so this condition evaluates to true. So the statement letter++ inside if condition executes which increments the letter variable to 1. So the value of letter becomes 1. Next statement i++ increments the value of i to 1. So i becomes 1. Hence:

i = 1

letter = 1

At second iteration:

i = 1

letter = 1

if( (string[i] >= 'a' && string[i] <= 'z') || (string[i] >= 'A' && string[i] <= 'Z') )

if condition checks if the character at i-th position of string is a letter. As the character at 1st position of string is 'b' which is a letter so this condition evaluates to true. So the statements letter++ inside if condition and i++ executes which increments these variables to 1. Hence:

i = 2

letter = 2

At third iteration:

i = 2

letter = 2

if( (string[i] >= 'a' && string[i] <= 'z') || (string[i] >= 'A' && string[i] <= 'Z') )

if condition checks if the character at i-th position of string is a letter. As the character at 2nd position of string is 'c' which is a letter so this condition evaluates to true. So the statements letter++ inside if condition and i++ executes which increments these variables to 1. Hence:

i = 3

letter = 3

At fourth iteration:

i = 3

letter = 3

if( (string[i] >= 'a' && string[i] <= 'z') || (string[i] >= 'A' && string[i] <= 'Z') )

if condition checks if the character at i-th position of string is a letter. As the character at 3rd position of string is '3' which is not a letter but a digit so this condition evaluates to false. So the statement letter++ inside if condition does not execute. Now i++ executes which increments this variable to 1. Hence:

i = 4

letter = 3

Now the loop breaks because while (string[i] != '\0') condition valuates to false as it reaches the end of the string.

So the statement: printf("\\ Number of Letters in this String = %d", letters); executes which prints the value of letters on the output screen. Hence the output is:

Number of Letters in this String = 3

How to write a function that counts the letters in a string in C?-example-1
User Reshad
by
5.3k points