Àh! Cái lỗi này đơn giản thôi mà
Bạn chưa phân biệt được sử dụng dấu ' và dấu " của C
-> ' đại diện cho 1 ký tự: 'a' 'b' thì được nhưng 'a1' hay 'bc' thì lỗi ngay lập tức.
-> " đại diện cho 1 chuỗi ký tự: "a" (thực chất là 2 ký tự ký tự đầu là 'a' và ký tự sau là NULL), "abc",...
char là 1 kiểu dữ liệu chỉ có 1 BYTE thôi.
Nếu bạn khai báo
char a = '1'; thì được
Tuy nhiên:
char a = 'ac'; // Lỗi cứ pháp
char a = "ac"; // Lỗi vì "ac" là một chuỗi (mảng các ký tự) "ac" gồm 3 ký tự
char a = "a"; // Cũng lỗi vì nó có tới 2 ký ưự.
Tóm lại như sau:
Code:
char a; // 1 ký tự duy nhất
char *lpStr; // Chưa xác định
char aStr[100]; // 100 ký tự
char *lpStr1 = "Hello eXecutive"; // 15 ký tự
a = 'a';
printf("%c",a);
lpStr = new char[100]; // Cấp phát vùng nhớ 100 ký tự
strcpy(lpStr,"ABCD");
printf("%s",lpStr);
delete lpStr; // Giải phóng
strcpy(aStr,"AB");
printf("%s",aStr);
strcpy(lpStr1,"ABCD");
printf("%s",lpStr1);
Hy vọng bạn đã biết lỗi sai!
Bookmarks