一,概念
1,如果要重复输出字符串,就用某个东西保存它。用来保存字符串的东西就叫字符串数组。
2,字符串也是由多个字符组成的,后面带有\0.
例如:char name[10 ] = “jack”
printf(name);
这里输出时会警告,因数编译器不带想接收name。
二,初始化字符串
char name[8]= {'i','t','\0'};
char name[] = {'i','t',o};// 因为\0的ASCII码值是0
char name[8] = {'i','t'}; //严格来说不正确
char name[] = {'i','t'}; //这是个普通的字符串
三,内存分析
刚进去内存由大到小的找地址,然后字符串存储在内存中也是由从大到小排的。也就是0, 1 , 2, 3,4
#include <stdio.h>
int main()
{
char name[] = "itcast"; // 正确
int size = sizeof(name);
printf("%d\n",size);// 输出name的字节数
return 0;
}
四, 注意\0
#include <stdio.h>
int main()
{
char name[] = "itcase";
int size = sizeof(name);
name[3] = 'H';
printf("我在%s上课\n",name);
return 0;
}
#include <stdio.h>
int main()
{
char name[] = "it";
char name2[] = {'o','k'};
printf("%s\n",name2); //这里输出okit,因为数组一个一个输出,直到遇到\0
return 0;
}
五,字符串函数strlen
#include <string.h>
#include <stdio.h>
int main()
{
int size = strlen("hehe"); // 这里不包括\0哦
printf("%d\n",size);
return 0;