C++ Program to Count Number of Words in String

Here you will get C++ program to count number of words in string.

First we initialize a counter variable to 1. Now iterate through string and count all the spaces, for each space increase the value of counter. Finally print the counter variable, it contains the number of words.


Enter a string:how are you buddy?

There are 4 words in the given string

17 thoughts on “C++ Program to Count Number of Words in String

  1. biswanath dehuri

    one mistake- you should writ like this

    if(a[i]!==' ')

    1. Neeraj Mishra

      I dont think there is any mistake in the logic that I have used in above program. You are telling wrong logic, please check it again.

      1. babli

        one syntax error

        this should be like this

        for(int i = 0; a[i] != ‘\0’; ++i)

      2. Avinav Ayushman

        I think there is one mistake. If we just use space then also it’s counting as word.

    2. Sreeram Atmakuri

      also if i give 2 or more spaces in between 2 words .the spaces will also be counted as words

  2. Joseph Francis Pellissery

    Try this…(for geany IDE)

    using namespace std;

    int main( )
    char str[80];
    int flag=0;
    cout << "Enter a string: ";

    int words = 0;

    for(int i = 0; str[i] != '\0'; i++)
    if ((str[i] == ' '||str[i]==',')&&flag==0)
    else if(str[i]!=' '&&str[i]!=',')
    flag=0 ;

    cout << "The number of words = " << words+1 << endl;

    return 0;

  3. Haris Javed

    I think this is not a true program for counting the no. of words in a string.
    The reason behind is that, if we give a space or more spaces after the string ends, it gives wrong answer.

  4. Ram

    This logic won’t work if there are multiple gaps(spaces) between two words.
    For example( cat and. Dog. T) the program show’s the number of words as more than 4.
    Actually you can make the change easily
    Instead of (if a[I]==’ ‘)
    { Count++;}
    Write the code as

    For(a[i]==’ ‘&&a[i+1]!= ‘ ‘)

  5. Sougata Talukdar

    It will be great if you add

    if(a[0]==’ ‘)

    after the for loop.
    This will help for this type of sentences
    ” A bird can fly”

  6. Manya

    I am not getting the desired output with this input.It is giving 1 as the no. of words in every string irrespective of its length.Kindly help!!!

  7. Harsh

    Or you guys can do this
    Take braces as parentheses
    for{i=0 ; a[i]!=’/0′ ; i++}
    if{{a[i]==’ ‘ || a[i]==’,’} && a[i+1]!=’ ‘}

    1. vaughn d scott

      You guys for got to do a conditional on the loop, Other wise; it wont see a ‘solo’ word..

      for ( int i = 0; i < 0; i++) // no code – unless you want to see it 'n' times
      if (user_input[i] == ' ' || user_input[i-1] == ''){ // this loop will look at the last char of a solo array and count the single word.



Leave a Reply

Your email address will not be published. Required fields are marked *