C program to get the first uppercase letter in a string :
In this tutorial, we will learn how to find the first uppercase letter or capital letter in a string using C programming language. User will enter the string and our program will find the first capital letter and print it out. Let’s take a look at the program first :
C program :
#include <stdio.h>
#include <string.h>
//5
int getFirstCapital(char *str, int position, int length)
{
//6
if (position == length)
{
return -1;
}
//7
if (str[position] >= 'A' && str[position] <= 'Z')
{
return position;
}
//8
return getFirstCapital(str, position + 1, length);
}
int main()
{
//1
char inputString[100];
//2
printf("Enter your string : ");
fgets(inputString, 100, stdin);
//3
int position = getFirstCapital(inputString, 0, strlen(inputString));
//4
if (position == -1)
{
printf("No capital letter found in the string.");
}
else
{
printf("First capital letter is %c ", inputString[position]);
}
}
Explanation :
- Create one character array inputString to save the user input string.
- Ask the user to enter the string. Read it and store it in variable inputString variable.
- Get the position of the first uppercase letter in the string. Save it in variable position.
- If the value of position is -1, no capital letter is found in the string. Else, print out the capital letter .
- getFirstCapital function is used to find the first uppercase letter. This function will be called recursively. If any uppercase character found, return its position. Else return -1.
- If current position is equal to the length of the string, means the whole string is scanned but not uppercase letter found. Return -1.
- If the current character is upper case, return the position.
- Call the same function recusively . Increment the current position by 1 each time.
Sample Output :
Enter your string : find one upper cAse letter
First capital letter is A
Enter your string : hello world
No capital letter found in the string.
Enter your string : hello worlD..
First capital letter is D
Enter your string : HELLO WORLD
First capital letter is H