#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;
}