Đếm số từ trong 1 chuỗi

Yêu cầu: Đếm số từ trong 1 chuỗi bất kì nhập từ bàn phím

Giải thuật: Duyệt từng kí tự trong chuỗi. Nếu kí tự thứ i là khoảng trắng và kí tự thứ (i+1) là kí tự anphal thì tăng biến đếm lên 1.

Tuy nhiên, như vậy sẽ bỏ xót trường hợp kí tự đầu tiên của chuỗi ko phải kí tự space thì sẽ được tính là 1 từ.

/************************Count words of string******************
* Author: vncoding
* Date : 22/12/2015
* Modify: vncoding
***************************************************************/
#include "stdio.h"
#include "conio.h"
#include "string.h"

#define MAX_LENGTH 100

int CountWord(char *string);

void main()
{
    char str[MAX_LENGTH];
    char c;
    printf("\nNhap chuoi khong qua 100 ki tu: ");
    fflush(stdin);
    gets(str);
    printf("\nChuoi '%s' co %d(tu)", str, CountWord(str));
    getch();
}

// Ham dem so tu trong chuoi
int CountWord(char *str)
{
    int count = 0;
    int length = strlen(str);
    int i;
    bool isSpace = false;
    for (i = 0; i < length; i++)
    {
        if (i == 0 && str[i] != ' ' && str[i] != '\t')
        {
            count++;
        }
        if (str[i] == ' ' || str[i] == '\t')
        {
            isSpace = true;
        }
        else if (isSpace)
        {
            count++;
            isSpace = false;
        }
    }
    return count;
}

Kết quả:

Đếm số từ trong 1 chuỗi
Đếm số từ trong 1 chuỗi

 

Be the first to comment

Leave a Reply

Your email address will not be published.

*