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;
}
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("\n 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