字符串处理函数
1. puts函数
其一般形式为: puts(字符数组)
•其作用是将一个字符串(以′\0′结束的字符序列)输出到终端并加上换行符。
假如已定义str是一个字符数组名,且该数组已被初始化为"China"。则执行puts(str);其结果是在终端上输出China
用puts函数输出的字符串中可以包含转义字符。
例如:
charstr[]={″China\nBeijing″};
puts(str);
输出结果:
China
Beijing
在输出时,将字符串结束标志′\0′转换成′\n′,即输出完字符串后换行
2.gets函数
其一般形式为:gets(字符数组)
其作用是从终端输入一个字符串到字符数组。该函数值是字符数组的起始地址。
注:1、gets以回车键表示输入结束,scanf以回车键和空格表示输入结束。如输入的字符中含有空格,则使用gets。
2、因为gets函数未能指定缓冲区大小,Linux中将提醒warning:the `gets' function is dangerous and should not be used.程序将该语句跳过不执行
如执行下面的函数: gets(str)
从键盘输入:
Computer↙将输入的字符串"Computer"送给字符数组str
以下 的字符串处理函数需要加入头文件#include<string.h>
3. strlen函数
其一般形式为: strlen (字符数组)
strlen是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括′\0′在内)。sizeof()则包括'\0'
例如:charstr[10]={″China″};
printf(″%d″,strlen(str));
4. strcat函数
其一般形式为:strcat(字符数组1,字符数组2)
Strcat的作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。
5. strcpy函数
其一般形式为:strcpy(字符数组1,字符串2)
strcpy是“字符串复制函数”。
作用:是将字符串2复制到字符数组1中去。例如:
charstr1[10],str2[]={″China″};
strcpy(str1,”china”);
关于strcpy函数的几点说明
(1)字符数组1必须定义得足够大,以便容纳被复制的字符串。字符数组1的长度不应小于字符串2的长度。
(2)“字符数组1”必须写成数组名形式(如str1),
“字符串2”可以是字符数组名,也可以是一个字符串常量。如:strcpy(str1,″China″);
(3)复制时连同字符串后面的′\0′一起复制到字符数组1中。
(4)可以用strcpy函数将字符串2中前面若干个字符复制到字符数组1中去。
例如:strncpy(str1,str2,2);作用是将str2中前面2个字符复制到str1中去,然后再加一个‘\0’。
(5)不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如:
str1=″China″; 不合法
str1=str2; 不合法
chara[5],c1,c2;
c1=′A′; c2=′B′;
a[0]=′C′;a[1]=′h′;a[2]=′i′;
a[3]=′n′;a[4]=′a′;
6. strcmp函数
其一般形式为:strcmp(字符串1,字符串2)
strcmp的作用是比较字符串1和字符串2。
例如:strcmp(str1,str2);
strcmp(″China″,″Korea″);
strcmp(str1,″Beijing″);
比较的结果由函数值带回
(1)如果字符串1=字符串2,函数值为0。
(2)如果字符串1>字符串2,函数值为一正整数。
(3)如果字符串1<字符串2,函数值为一负整数。
注意:对两个字符串比较,不能用以下形式:
if(str1>str2)
printf(″yes″);
而只能用
if(strcmp(str1,str2)>0)
printf(″yes″);