thêm ký hiệu kết thúc chuỗi vào cuối chuỗi pw hoặc cho chuỗi pw là static char
C Code:
#include<stdio.h> #include<conio.h> #include <string.h> void main() { char pw[11]; int solan = 0; // Cho phep nhap 3 lan clrscr(); do { clrscr(); gotoxy(30,12) ; int i = 0; while ((pw[i]=getch()) != 13 && ++i < 10) { } while (solan < 3); getch(); }
Mình đã nhập đúng mật khẩu rồi nhưng sao nó không hiện ra câu:Mời vào.
Nhờ các ban kiểm tra giúp!
thêm ký hiệu kết thúc chuỗi vào cuối chuỗi pw hoặc cho chuỗi pw là static char
mù english+ngu thuật toán+lười--->làm sao trở thành kỹ sư phần mềm![]()
![]()
thêm ký hiệu kết thúc chuỗi vào cuối chuỗi pw--->làm như thế nào hả bạn
Tức là thêm lệnh pw[i] = 0; trước lệnh if.
theo mình thì ko nên dùng strcmp mà ta check từng phần tử, sai ở đâu thì break ở đó
'\0' là ký tự NULL để kết thúc chuỗi ví dụ
thì khi ta puts sẽ chỉ xuất raCode:char s[]="abc\0d;" puts(s);
abc
Mình đã thêm nhưng mà vẫn bị như cũ bạn à
Chắc là lỗi đặc trưng của compiler. Mình thử trong gcc thì chạy được.
Code:#include<stdio.h> #include<conio.h> #include<string.h> int main() { char pw[11]; int solan = 0; // Cho phep nhap 3 lan do { int i = 0; while (((pw[i]=getch()) != 13) && (++i < 10)) { printf("X") ; // 13 = Enter } pw[i]=0; if (strcmp(pw, "nguyen")==0) { printf ( "Moi vao") ; break; } else { printf( "Sai mat khau. Nhap lai") ; solan++ ; } } while (solan < 3); getch(); }
strcmp sẽ so sánh 2 string = cách duyệt từng cặp 2 ký tự trong 2 chuỗi tới khi gặp ZERO char kết thúc chuỗi. Chuỗi # len sẽ return #0. Chuỗi pw của cậu có rác phía sau.
Cậu sữa code lại như sau:
hay:Visual C++ Code:
char pw[11] = { 0 }; int solan = 0;
Visual C++ Code:
char pw[11]; int solan = 0; memset(pw, 0, sizeof(pw));
Tập debug đi, debug từng bước, nhớ watch giá trị của i và pw.
Đã được chỉnh sửa lần cuối bởi TQN : 19-05-2008 lúc 10:33 PM.