Home Strings Find the number of words in a string.

Find the number of words in a string.

by nikoo28
0 comment 2 minutes read

Question: Find the number of words in a given string?

Input: This is a sample    statement       and I need to         find   the number of words.
Output: 14

According to the problem, we are given a string and it contain words separated by spaces, next lines or tab spaces. So, the basic idea for the problem would be to traverse the string and increment a counter whenever we see the end of a word.

/* Program to count no of words from given input string. */
#include <stdio.h>

// returns number of words in str
int countWords(char *str)
{
    // We use a flag variable, flag = 1 means word has not been found
    // flag = 0 means we are traversing a word
    int flag = 1;

	int wordCount = 0;  // word count
 
	// Scan all characters one by one
    while (*str)
    {
        // If next character is a separator, set the flag
        if (*str == ' ' || *str == '\n' || *str == '\t')
            flag = 1;
        else if (flag == 1)
        {
			// If next character is not a word separator and flag is 1
			// then set the flag as 0 and increment word count
			
            flag = 0;
            ++wordCount;
        }

        // Move to next character
        ++str;
    }
 
    return wordCount;
}
 
// Driver program to test above function
int main(void)
{
    char str[] = "This is a sample statement    and          I need to find the    number of words.";

	printf("No of words: %d\n", countWords(str));

	return 0;
}

You may also like

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More