30/09/2018, 23:07
Nhờ mọi người xem xét giúp em bài tập về Chuỗi này!
Hi mọi người.
Em có làm 1 bài tập như sau nhưng đáp án bị sai. Nhờ mọi người xem xét giùm !
Đề bài: Hãy đếm xem có bao nhiêu từ trong 1 chuỗi s cho trước. Định nghĩa từ là 1 hoặc 1 nhóm các ký tự khác khoảng trắng.
Chuỗi cho trước: http://codepad.org/czLh7j7J
Source code:
int CalcStrWrd(char *s)
{
char *p = strdup(s);
int len = strlen(p);
int Dem = 0;
if ((p[0] >= 97 && p[0] <= 122) || (p[0] >= 65 && p[0] <= 90))
Dem++;
for (int i = 0; i < len; i++)
{
if ((p[i] >= 97 && p[i] <= 122) || (p[i] >= 65 && p[i] <= 90))
{
if (p[i - 1] == 32)
Dem++;
}
}
return Dem;
}
Chương trình của em sau khi chạy xong thì ra kết quả là 1072 từ, nhưng đáp án của bài tập là 1153 từ.
Em thấy bối rối quá. Mọi người xem xét giúp em ạ !
Bài liên quan
theo mình nghĩ do có tiếng việt (không có mã ACSII ) nên nó ra sai kết quả. bạn phải làm cách khác thôi. các từ ngăn cách nhau bởi khoảng trắng nên phải dựa vào khoảng trắng bạn ạ