Write a c program to take input from the user and count the total number of words in a string
#include<stdio.h>
int main()
{
char s[50];
int i,c=0,b=0;
/* take String input from user */
printf("enter a string:");
gets(s);
for(i=1;s[i]!='\0';i++)
{
if(s[i]==' ' || s[i] == '\n' || s[i] == '\t')
{ /* b count total space*/
b++;
/* c count total previous space */
if(s[i-1]==s[i])
c++;
}
}
printf("number of word in a string is %d",b-c+1);
return 0;
}
enter a string: hello learn from Studyfame.com number of word in a string is 4
1
to end of string i.e '\0'
. every string contains a null character at the end i.e '\0'.(' '
), newline '\n'
, or tab '\t'
present in string and store it in variable b
. count all previous space and store it in variable c
. c
from total space i.e b
and add 1
. you will get the total word in a string.For example, Sentence:- 'learn from studyfame'.
In the above sentence, 1
space between 'learn' and 'from'.
5
space between 'from' and 'studyfame'.
b = 5 + 1 i.e total space = 6.
c = 4 i.e four previous space exist between 'from' and 'studyfame'.
total word = b - c + 1 (6 - 4 + 1 = 3), total word=3
.
time complexity: 0(n)