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;
}
Trần Hoàn viết 11:38 ngày 01/10/2018

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.

Trần Hoàn Võ viết 11:43 ngày 01/10/2018

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!

Trần Hoàn viết 11:35 ngày 01/10/2018

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.

vu van thinh viết 11:33 ngày 01/10/2018

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:

Quân viết 11:39 ngày 01/10/2018

Không cần test cùng biết không ra kết quả mong muốn rồi

vu van thinh viết 11:46 ngày 01/10/2018

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

Dark.Hades viết 11:34 ngày 01/10/2018

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.

Bài liên quan
0