Table of Contents
In the given string, find the numbers of words in it. Words can be separated by space (or) new line (or) tab.
Example
Input string : “In the given string”
Output : 4
Time complexity : O(n)
Algorithm
a. Maintain flag, flag = 1 indicates that separator is seen.
b. flag = 0 indicates character in the word.
c. Initialize count = 0.
We increment count when previous flag = 1 and next flag = 0.
d. Return final count.
C++ Program
#include <bits/stdc++.h>
using namespace std;
// returns number of words in str
int CountOFWords(char *str)
{
int flag = 0;
//Initialize count = 0
//flag = 0, space
//flag = 1 character
int count = 0;
while(*str)
{
//If str is space or tab or new line, // flag is 1
if (*str == ' ' || *str == 'n' || *str == 't')
{
flag = 0;
}
//Next after flag = 0 there is flag = 1
else if (flag == 0)
{
flag = 1;
++count;
}
// Move to next character
++str;
}
return count;
}
//Main function
int main()
{
char str[] = "In given string";
cout<<CountOFWords(str);
return 0;
}