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ừ.
Code:
/************************Count words of string******************/
#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ả:
1 2 |
Nhap chuoi khong qua 100 ki tu: ngoton.it chia se kien thuc Chuoi ' ngoton.it chia se kien thuc ' co 5(tu) |
Leave a Reply