em xem trong này(cái kink đầu tiên, soict của đhbk ấy ạ, chả hiểu sao e ấn vào nó tự động getlink luôn@@, phải down về mới xem được, trang 16/23 ấy ạ) thì bảo xâu rỗng là xâu ko có kí tự nào nó sai hả anh?
cái đầu thì em hiểu rồi, còn cái thứ 2 thì e chưa hiểu trong mảng thì đánh số từ 0 cơ mà ạ? nếu thế kia thì mảng đấy vẫn có 2 phần tử, 1 phần tử bình thường còn 1 phần tử là \0
Oh, cái này là anh tự cắn lưỡi mình rồi Để anh nói rõ hơn nhé
Chuỗi và mảng ký tự là một, nhưng khi có ký tự kết thúc chuỗi thì đó rõ ràng là chuỗi, còn nếu không có ký tự kết thúc chuỗi, thì anh có thể coi đó là mảng thôi cũng được.
Sai, có ít nhất một ký tự, là ký tự kết thúc chuỗi. Em hoàn toàn có thể kiểm tra được bằng cách debug mà
Anh ví dụ bằng chương trình cho em dễ hiểu nhé
#include <stdio.h>
int main() {
char mang1[] = "";
char mang2[1] = {0};
printf("mang1 %s\n", mang1);
printf("mang2 %s\n", mang2);
printf("so phan tu cua mang1 %d\n", sizeof(mang1));
printf("so phan tu cua mang2 %d\n", sizeof(mang2));
printf("phan tu duy nhat cua mang1 co gia tri %d\n", mang1[0]);
printf("phan tu duy nhat cua mang2 co gia tri %d\n", mang2[0]);
return 0;
}
Output:
mang1
mang2
so phan tu cua mang1 1
so phan tu cua mang2 1
phan tu duy nhat cua mang1 co gia tri 0
phan tu duy nhat cua mang2 co gia tri 0
cảm ơn bạn tui biết rồi cảm ơn bạn vì đã post lại code ở bài 10
bạn cho tui hỏi %d là số nguyên %s là chữ còn %f là số lẻ
vậy còn int , float dùng để làm gì làm gì
tui đang học đến bài 10 à còn char nữa chứ
ltdLê Trần ĐạtNov '14
mang[3] = 0 sẽ làm cho hàm printf khi xuất chuỗi ra sẽ ngừng khi gặp giá trị 0. Đó là quy tắc để phân biệt chuỗi và mảng ký tự trong C.
Chuối tức là mảng ký tự kết thúc bằng 0.
anh đạt ơi cái này em thắc mắc chút
mang[3] = 0 nó sẽ ngừng khi gặp giá trị 0, vậy giá trị 0 ở đây là chỗ nào ạ
với cả em thay 0 = số khác thì nó có hình như mấy ký tự rác vậy