w3resource

C Programming: Count the total number of words in a string

C String: Exercise-5 with Solution

Write a program in C to count the total number of words in a string.

C Programming: Count the total number of words in a string

Sample Solution:

C Code:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define str_size 100 //Declare the maximum size of the string

void main()
{
    char str[str_size];
    int i, wrd;
	
       printf("\n\nCount the total number of words in a string :\n");
       printf("------------------------------------------------------\n"); 	
       printf("Input the string : ");
       fgets(str, sizeof str, stdin);	
	
    i = 0;
    wrd = 1;

    /* loop till end of string */
    while(str[i]!='\0')
    {
        /* check whether the current character is white space or new line or tab character*/
        if(str[i]==' ' || str[i]=='\n' || str[i]=='\t')
        {
            wrd++;
        }

        i++;
    }

    printf("Total number of words in the string is : %d\n", wrd-1);
}

Sample Output:

Count the total number of words in a string :                                                                 
------------------------------------------------------                                                        
Input the string : This is w3resource.com                                                                     
Total number of words in the string is : 3 

Flowchart:

Flowchart: Count the total number of words in a string

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a program in C to print individual characters of string in reverse order.
Next: Write a program in C to compare two strings without using string library functions.

What is the difficulty level of this exercise?



C Programming: Tips of the Day

How to measure time in milliseconds using ANSI C?

There is no ANSI C function that provides better than 1 second time resolution but the POSIX function gettimeofday provides microsecond resolution. The clock function only measures the amount of time that a process has spent executing and is not accurate on many systems.

You can use this function like this:

structtimevaltval_before, tval_after, tval_result;

gettimeofday(&tval_before, NULL);

// Some code you want to time, for example:
sleep(1);

gettimeofday(&tval_after, NULL);

timersub(&tval_after, &tval_before, &tval_result);

printf("Time elapsed: %ld.%06ld\n", (long int)tval_result.tv_sec, (long int)tval_result.tv_usec);

This returns Time elapsed: 1.000870 on my machine.

Ref : https://bit.ly/3lpwoMn