Thầy mình có cho 1 đề như thế này :
Cho 1 file .txt chứa các chuỗi, mỗi chuỗi trên 1 dòng, đầu và cuối chuỗi không có khoảng trắng, giữa các từ có duy nhất 1 khoảng trắng. Mỗi chuỗi có tối đa 256 kí tự thường hoặc khoảng trắng. hãy đọc từ file và tìm số lượng các từ có 5 kí tự trên mỗi dòng.
ý tưởng của em là cho 1 mảng string và n là số lượng phần tử của mỗi string, ta sẽ duyệt từ string đầu đến string cuối và mỗi string sẽ reset lại biến đếm và tạo số lượng của chuỗi mới k và 1 mảng kí tự động s chứa số lượng phần tử của chuỗi mới đó nhưng đến phần điều kiện thì nó không đúng nên xin các các cao nhân chỉ giáo
int kiemtra(char s[])
{
int dem = 0, n = strlen(s);
for (int i = 0; i < n; i++)
{
if (s[i] != ' ')
dem++;
}
if (dem == 5)
return 1;
return 0;
}
void dem_5_ki_tu(string a[], int n)
{
int dem;
char *s;
for (int i = 0; i < n; i++)
{
dem = 0;
int k = a[i].length();
s = new char[k];
for (int j = 0; j < k; j++)
{
if (s[j] == ' ' && s[j + 1] != ' ' && kiemtra(s) == 1)
{
dem++;
}
}
cout << "\nSo luong tu co 5 ki tu cua dong " << i << " la: " << dem;
}
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?