01/10/2018, 09:31
Cách nhập chuỗi và dừng lại khi gặp một từ cho trước trong C
Mình muốn nhập một chuỗi và khi đến từ kết thúc thì nó dừng lại nhưng code k chạy theo ý mình mọi người cho ý kiến với ạ
#include <stdio.h>
#include <string.h>
#include <conio.h>
void Dem(char str[]){
int k = 0, dem = 0;
for (int i = 0; i < strlen(str); i++){
while ( str[k] != str[i]) k++;
if (k == i){
dem += 1;
}
}
}
main(){
char str[100];
while(_getch() != 'ketthuc') gets(str);
Dem(str);
return 0;
}
Bài liên quan
hình như
getch()
chỉ lấy 1 ký tự thôi mà. Mà''
là cặp dấu dùng cho kiểu ký tự,'ketthuc'
hay'k'
cũng giống nhau.Nhưng nhỡ bạn ấy nhập chuỗi kí tự có chữ ‘k’ nó dừng lại luôn thì sao ?
Theo mình biết sơ sơ thì getch() chỉ đọc từng kí tự bạn gõ thôi và mình thấy đoạn code này k ổn chỗ nào hết, ý bạn muốn có lẽ phức tạp hơn thế này nhiều!
Thì đó, mình chỉ ra cái sai của bạn ấy mà. Nhập
'k'
cái là hết luôn. Còn đọc buffer thì mình không thạo C nên không ý kiến.vậy mọi người có cách nào để nhập ketthuc mà chương trình dừng lại không nhỉ còn code thì mình chưa dùng được phần main nên chưa test code đc:joy:
Không cần test cùng biết không ra kết quả mong muốn rồi
cái đó chắc mình sửa được còn cái đoạn nhập vào ý có cách nào k nhỉ mò mãi mà k ra nổi
Nhập rồi lưu toàn bộ chuỗi, nhập tới đâu check chuỗi tới đó, check theo thứ tự từ kí tự vừa nhập lùi lại 7 kí tự = ketthuc thì thoát.
Cách dễ làm nhất.