Bài toán: Đếm xem có bao nhiêu từ trong xâu s
Input: chuỗi s
Xử lý: Gán đếm=0
Duyệt chuỗi, nếu s[i] là khoản trắng và s[i+1] khác khoản trắng thì tăng đếm +1
Nhưng như vậy thì từ đầu tiên không có khoản trắng thì sao?
Ví dụ: Le Cong Danh nó sẽ đếm được 2 từ
Vậy nếu s[0] khác khoản trắng thì dem=1 còn nếu nó có khoản trắng thì vòng lặp trên nó sẽ duyệt qua
output: đếm
Hàm đếm số từ
int demsotu(char *s) { int n=strlen(s),i; int dem=0; if(s[0]!=' ') dem=1; for( i=0;i<n-1;i++) { if(s[i]==' ' && s[i+1]!=' ') dem++; } return dem; }
Chương trình
#include<stdio.h> #include<conio.h> #include<string.h> int demsotu(char *s); void main() { char s[90]; printf("nhap chuoi "); gets(s); int kq=demsotu(s); printf("\nSo tu trong chuoi la: %d",kq); getch(); } int demsotu(char *s) { int n=strlen(s),i; int dem=0; if(s[0]!=' ') dem=1; for( i=0;i<n-1;i++) { if(s[i]==' ' && s[i+1]!=' ') dem++; } return dem; }
Mình chia sẽ code này đê các bạn tham khảo các vấn đề tương tự. Tuy nhiên các bạn nên tự làm lại, đừng nên copy. Nếu gặp vấn đề gì khó khăn, hoặc thắc mắc gì, các bạn có thể đặt câu hỏi ở cuối bài. Mình sẽ giải đáp.
Chúc các bạn thành công!
Char s[90] kia là gì ạ
Khai báo chuỗi S có 90 ký tự thôi bạn
bạn ơi ; nuế tôi nhâp là:cao văn tiến rồi ấn thêm phím cách nữa thì số từ nó ra là 4,nhưng thực tế lại chỉ có là 3,hay bất cứ chuỗi nào đó khi nhập thêm phím cách số từ đều tăng thêm 1;sửa lại sao cho đúng được bạn
bạn nên loại bỏ hết khoảng trắng thừa, khoảng trắng đầu và cuối chuỗi, 2 khoảng trắng liên tiếp thì bỏ bớt 1 khoảng trắng
????
cho chuoi khong ghi chu nao ket qua tra ve bang 1
tai sao lai la n-1 vay a?
bạn debug đi sẽ hiểu!