#include<stdio.h>
int main() {
char str1[8] = { 'd','e','d','g','o' };
char str2[5] = { 'd','e','d','g','o' };
printf("%d", sizeof(str1));
printf("%d", sizeof(str1));
return 0;
}
對於字符串數組,當定義時直接對其賦值,無論元素是否占滿數組,其儲存的字符個數都是數組的元素個數,未占滿時會自動用\0補全
#include<stdio.h>
#include<string.h>
int main() {
char str[14];
for (int i = 0; i < 5; i++) {
str[i] = getchar();
}
puts(str);
return 0;
}
輸出會亂碼
使用getchar
要在輸入的每個字符串后面加\0,例如
#include<stdio.h>
#include<string.h>
int main() {
char str[14];
for (int i = 0; i < 5; i++) {
str[i] = getchar();
}
str[5] = '\0';
puts(str);
return 0;
}