30/09/2018, 16:18

Dung Lượng Lưu Trữ Trong Xâu Kí Tự Trong C

Ai hiểu kĩ phần Xâu Kí Tự thì giúp em với
Em có thắc mắc là khi mình khai báo xâu kí tự char a[10] thì dung lượng lưu trữ xâu đó là 11 hay 10 ạ? lưu trữ kí tự NULL ở trong xâu hay thế nào ạ?

Trần Hồng Phong viết 18:28 ngày 30/09/2018

Khi khai báo một chuỗi char a[] thì bạn nên khởi tạo rỗng luôn. VD: char a[10] = “”; char a[10] dĩ nhiên chỉ lưu được tối đa 10 kí tự, và nhất thiết bạn phải có một giá trị NULL để đánh dấu hết chuỗi

Rubi Lynk viết 18:21 ngày 30/09/2018

sao cô giáo mình chữa là 11 :frowning

Rubi Lynk viết 18:20 ngày 30/09/2018

trong giáo trình bọn mình ghi là xâu kí tự “A” được lưu trữ trong 2 bytes gồm cả kí tự NULL nên mình rất thắc mắc. mình với bạn mình không biết ai đúng ai sai luôn. mỗi người 1 kiểu.

Minh Hoàng viết 18:29 ngày 30/09/2018

10 kí tự thôi bạn ơi, bạn mở visual hay codeblock lên thử là biết mà
‘A’+NULL=2byte

Rubi Lynk viết 18:23 ngày 30/09/2018

cảm ơn bạn nha :)))))))))))))))))))))))

BaoLe viết 18:24 ngày 30/09/2018

Mình nghĩ là 1 ký tự kết thúc chuỗi \0, còn lại chỉ lưu trữ được 9 ký tự thôi bạn.
Chạy thử hai đoạn code này thì bạn sẽ rõ thôi là 9 hay 10 hay 11.

#include<stdio.h>
int main(){
	char chuoi[10]="muoi phan";
	printf("chuoi < %s > co do dai bang %d.",chuoi,strlen(chuoi));
	return 0;
}
#include<stdio.h>
int main(){
	char chuoi[10]="muoi phan1";
	printf("chuoi < %s > co do dai bang %d.",chuoi,strlen(chuoi));
	return 0;
}
Hoàng Long viết 18:30 ngày 30/09/2018

Ký tự đc lưu 2byte là tính luôn dấu phải ko mn.ví dụ: a’

Minh Hoàng viết 18:26 ngày 30/09/2018

/0 cũng là một kí tự nhưng nó không in ra được thôi ví dụ như bạn gán trực tiếp cho chuỗi 10 phần tử bằng 1 chữ cái thì khi bạn in ra thì nó sẽ in ra 10 phần tử nói chung là bạn có thể lưu được 10 kí tự luôn ấy

Bài liên quan
0