ANSI C标准要求在使用字符串处理函数时,要包含头文件string.h ;在使用字符函数时要包含头文件ctype.h
char arr1[ ]={"I am happy"};
char arr2[ ]={'I',' ','a','m',' ','h','a','p','p','y'};
其中:arr1[ ]等价于{'I',' ','a','m',' ','h','a','p','p','y','\0'}
arr1与arr2不等价
arr1 长度为11,arr2长度为10
(都用%s格式字符)
一般形式:puts(字符数组)
功能:将一个字符串(以'\0'结束的字符数列)输出到终端
例:char arr1[ ]={"I am happy"};
puts(arr1);
输出为“I am happy”
如 char str[ ]={"China\nBeijing"};
puts(str);
输出:
China
Beijing
注:1、puts输出时结束符'\0'自动换为'\n',即输出完字符串后换行
2、puts函数只能输出一个字符串
一般形式:gets(字符数组)
功能:从终端输入一个字符串到字符数组,并得到一个函数值,函数值是字符数组的起始地址
例:gets(str); //str是已定义的字符数组
从键盘输入:Computer
则送给字符数组str,返回的函数值是字符数组的起始地址
注:1、送给字符数组的是9个字符,而不是8个
2、gets函数只能输入一个字符串
一般形式:stract(字符数组1,字符数组2)
功能:将字符串2接到字符串1后面,结果放在字符数组1中,函数调用后得到一个函数值---字符数组1的地址
注:1、字符数组1要足够大
2、连接时字符串1后面的'\0'取消,只在新串最后保留'\0'
一般形式:strcpy(字符数组1,字符数组2)
功能:将字符串2中复制到字符数组1中去
注:1、字符数组1要足够大,不应小于字符串2的长度
2、字符数组1必须写成数组名形式(如str1),字符串2可以是数组名也可以是一个字符串常
量
3、复制时字符串2中的'\0'也一起复制
4、不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组,因为字符数组名是一
个地址常量,不可更改
可以用strncpy函数将字符串2中前n个字符复制到字符数组1中
如strncpy(str1,str2,2)
功能:将str2最前面两个字符复制到str1中,取代str1原本最前面两个字符
一般形式:strlen(字符数组)
功能:函数的值为字符串的实际长度(不包括'\0'在内)
如 char str[10]="China";
printf("%d",strlen(str));
输出结果为5,不是10,也不是6