Home Strings Find the number of words in a string.

Find the number of words in a string.

by nikoo28
0 comment

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

Enclose codes in [code lang="JAVA"] [/code] tags

This site uses Akismet to reduce spam. Learn how your comment data is processed.

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