1. 字符数组——用来存放字符数据、
1. char []
2. 字符串和字符串字符结束标记、
3. \0——字符串结束标记
2. 为了测定一个字符串的实际长度
字符数组的输入输出、
输入字符串、
scanf、
char a[10];
scanf("%s", a);
printf("%s\n", a);//会提示警告、原因是这是scanf旧的标准、vs编译器有新的标准、
scanf解决方案、参考网上的讲解
、数组名本身就代表数组的起始地址、
字符数组串处理函数、
%s——输出一个字符数组(字符串)、
puts——将一个字符串输出、只能输出一个字符串、相当于printf(%s)、
gets——字符数组名、输入字符串到数组中——只能输入一个字符、功能不及scanf
strcat
strcat( , )
起到连接作用、将字符串 , 后面的连接到前面、
char a[10] = "wo";
char b[10] = "shi";
char c[10] = "shei";//只能使用两个、不能说使用c
strcat(a, b);
printf( a, b);
第一个字符串的字符必须足够大、足够连接后面的字符串即、a必须能放下b的内容、
连接时、两个 /0 变成一个——具体看内存
只能拷贝、不能赋值、不能将一个字符串常量或者字符数组直接赋值给一个字符数组、
是因为字符串不能直接赋值、所以才有了strat函数、
赋值≠初始化、
strcpy
strcpy( , ),
将后面的内容填充到前面、前面的内容将被替换成后面的内容
char a[10] = "wohenhao";
char b[10] = "shi";
strcpy(a, b);
printf(a, b);//注意看内存、内存有enhao、只是shi替换woh
a必须是字符数组(因为需要地址)、b是字符串(也可以是字符数组、也可以是字符串常量)、
拷贝是连同 /0 也一同拷贝
strcmp( , )函数
比较前面字符串和后面字符串是否一样
比较内容、
如果前面=后面则返回——0
如果前面<后面则返回——正整数
如果前面>后面则返回——负数、
比较规则——对两个字符串从左到右逐字比较、表ASCII码值的大小、以出现第一个不同为依据、判断大小、
一般用于比较是否相同、
int a;
char b[10] = "woshi";
char c[10] = "woshi";
a = strcmp(b, c);
printf("%d\n",a);
b==c//这样的比较是比较内存地址 、
、
、
、strlen
测试字符段长度的函数、遇到/0停止、不包括/0、
sizeof——查询的是所占字节、而非内容的字节
int a;
int soa = sizeof(a);
printf("%d", soa);
strlen——和内容有关 、sizeof——和内容无关、
、
char a[30]="woshishei";
printf("%s\n", a);//————正常
a[3] = ‘d‘;//————实验1——给予其它字符、
printf("%s\n", a);//——结果——给予的字符替换替换了原先的字符
a[3] = ‘\0‘;//————实验2——给予\0结束字符
printf("%s\n", a);//————结果————提前结束
原文:https://www.cnblogs.com/chengyaohui/p/13592108.html