In order to code the program, we have to understand question properly.Here, question wants that we have to capitalize the each word’s first letter in a given string or entered string.Example:”all the best” is converted into “All The Best” after the execution of code.
- First get the string which entered by user.
- Iterate overall string using for loop
- Take first letter of the string i.e i=0 and convert it into captical form by substracting with 32.
- Then check the spaces and increment i so that it would point first letter after space of word.
- Apply same conditions just like you did for first letter of a string
- Lastly,check if any letter in captial form then convert it into lower case by adding 32.(Optional not required as such)
printf("Enter a string: ");
scanf("%[^\n]s",str); //kind of regular expression .It takes input until new line
for(i=0; str[i]!='\0'; i++)
if(i==0)//check first character is lowercase alphabet
if((str[i]>='a' && str[i]<='z'))
str[i]=str[i]-32; //subtract 32 to make it capital(Please go through ASCII table you will get to know why 32)
continue; //a->97and A->65 so 97-32=65(capital A)
if(str[i]==' ')//check space
++i;//increment i which points first letter after the space.
if(str[i]>='a' && str[i]<='z')
if(str[i]>='A' && str[i]<='Z')//optional no required as such
printf("First word capitalize string: %s\n",str);