1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main()
{
// 如果用字符数组来初始化字符串,末尾不是\0结尾后面的会乱码
char buf[] = {'a', 'b', 'c'};
printf("buf = %s\n", buf);
// 指定数组长度未初始化的地方会补零,读到0就作为字符串结束标记,则不会乱码
char buf1[100] = {'a', 'b', 'c'};
printf("buf1 = %s\n", buf1);
// '字符 0' ≠ 0 = '\0'
char buf2[100] = {'a', 'b', 'c', '0', '1', '2'};
printf("buf2 = %s\n", buf2);
char buf3[100] = {'a', 'b', 'c', 0, '1', '2'};
printf("buf3 = %s\n", buf3);
char buf4[100] = {'a', 'b', 'c', '\0', '1', '2'};
printf("buf4 = %s\n", buf4);
// 常用初始化字符串的方法
char str[] = "safafasga";
// strlen() 和 sizeof() 的区别:
// 字符串末尾以\0结尾,strlen() 计算字符串长短; sizeof()计算大小还会包含\0
printf("strlen() = %d, sizeof() = %d\n", strlen(str), sizeof(str));
char str2[100] = "safafasga";
// 制定数组大小的情况下,未制定的位置将会自动补零
printf("strlen() = %d, sizeof() = %d\n", strlen(str2), sizeof(str2));
return 0;
}
|