分为字符数组和字符串数组
字符数组:
char a[]={'a','b','c','\0'};
不自带'\0',如果直接输出会出现乱码,加上'\0'才能正常输出
字符串数组:
char a[]="abc";
char b[]={"abc","def"};
默认最后自带'\0',不需要另加,如果在中间加'\0'则输出提前结束;
用sizeof()测的字节数包括\0
用strlen()测的字节数仅为有效字节数,不包括\0;
如果通过scanf对其进行赋值的时候,对这个数组输入字符类型的控制也就是%s或%c的不同决定了这个数组是字符串数组还是字符数组
c语言中常见的字符操作函数
使用时需要包含cstdio的头文件
strcpy:将一个字符串的内容拷贝到另一个字符串
使用strcpy应注意的点:
1.源字符串必须以 ‘\0’ 结束。
2.会将源字符串中的 ‘\0’ 拷贝到目标空间。
3.目标空间必须足够大,以确保能存放源字符串。否则会导致数组越界访问
4.目标空间必须可变。必须要是可修改的数组
strcat:将一个字符串的内容接在另一个字符串的后面
使用strcat需要注意的地方:
1.源字符串必须以 ‘\0’ 结束。’\0’也会被赋给目标字符串
2.目标空间必须有足够的大,能容纳下源字符串的内容。
3.目标空间必须可修改。
4.不可以自己连接自己否则会陷入死循环
strcmp:是两个字符串的比较,比较的不是字符串的长度而是字符的大小,如'1245'>'1234;'abcd'<'addd';
标准规定:
第一个字符串大于第二个字符串,则返回大于0的数字(一般是1)
第一个字符串等于第二个字符串,则返回0
第一个字符串小于第二个字符串,则返回小于0的数字(一般是-1)
strlen:计算字符串的长度,但不包括最后的\0
求字符串长度时i,字符串不可写成arr[] = {‘a’, ‘b’, ‘c’}的形式,否则计算的是随机值,因为该数组末尾是没有\0的
该函数将p的前n个字符加到该对象的原字符串后面