- 在内存中以“\0”结束,所占字节比实际多一个
- 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。
- 当把一个字符串存入一个数组时,会把结束符‘\0’存入数组,并以此作为该字符串是否结束的标志。
- 有了‘\0’标志后,就不必再用字符数组 的长度来判断字符串的长度了
- 初始化
char name[9] = "lnj";
char name1[9] = {'l','n','j','\0'};
char name2[9] = {'l','n','j',0};
char name3[9] = {'l','n','j'};
char name4[] = {'l','n','j'};
char name[] = "c\0ool";
printf("name = %s\n",name);
输出结果: c
- 如果字符数组中存储的是一个字符串, 那么字符数组的输入输出将变得简单方便。
- 不必使用循环语句逐个地输入输出每个字符
- 可以使用printf函数和scanf函数一次性输出输入一个字符数组中的字符串
- 使用的格式字符串为“%s”,表示输入、输出的是一个字符串 字符串的输出
- %s的本质就是根据传入的name的地址逐个去取数组中的元素然后输出,直到遇到\0位置
char chs[] = "lnj";
printf("%s\n", chs);
char name[] = {'c', 'o', 'o', 'l' , '\0'};
char name2[] = {'l', 'n', 'j'};
printf("name2 = %s\n", name2);
char ch[10];
scanf("%s",ch);
- 对一个字符串数组, 如果不做初始化赋值, 必须指定数组长度
- ch最多存放由9个字符构成的字符串,其中最后一个字符的位置要留给字符串的结尾标示‘\0’
- 当用scanf函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束符