1.puts函数——输出字符串的函数
一般形式为:puts(字符数组)
其作用是将一个字符串(以'\0'结束的字符序列)输出到终端。由于可以用printf函数输出字符串,因此puts函数用的不多。(ps:用puts函数输出的字符串中可以包含转义字符)
例如:
输出结果:
2.gets函数——输入字符串的函数
一般形式为:gets(字符数组)
其作用是从终端输入一个字符串到字符数组,并得到一个函数值,该函数值是字符串数组的第一个元素的地址(虽然不太关心这个)
注意:用puts和gets函数只能输入或输出一个字符串,不能写成“puts(str1,str2);”或“gets(str1,str2);” 。
3.strcat函数——字符串连接函数
一般形式为:strcat(字符数组1,字符数组2)
其作用是把两个字符串数组中的字符连接起来,把字符串2接到字符串1的后面,结果放在字符数组1中。函数调用后得到字符数组1的地址。
例如:
输出结果:
注意:字符数组1必须足够大,以便容纳连接后的新字符串。
4.strcpy和strncpy函数——字符串复制函数
一般形式为:strcpy(字符数组1;字符数组2)
其作用是将字符串2复制到字符数组1中去。
例如:
输出结果:
注意:(1)字符数组1必须定义的足够大以便容纳被复制的字符串2。字符数组1的长度不应小于字符串2的长度。
(2)“字符数组1”必须写成数组名形式(如str1),“字符串2”可以是字符数组名,也可以是一个字符串常量。例如:strcpy(str1,"China");作用与前面相同。
(3)不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如str1="China"; str1=str2;这都是不合法的。
(4)可以用strncpy函数将字符串2中前面n个字符复制到字符数组1中去。如:strncpy(str1,str2,2);作用是将str2中最前面两个字符复制到str1中,取代str1中原有的最前面两个字符。但复制的字符个数n不应多于str1中原有的字符个数(不包括'\0')。
5.strcmp函数——字符串比较函数
一般形式为:strcmp(字符串1;字符串2)
其作用是比较字符串1和字符串2。
例如:strcmp(str1,str2);
strcmp("China","Korea");
strcmp(str1,"Beijing");
比较的结果由函数值带回:
(1)如果字符串1与字符串2相同,则函数值为0。
(2)如果字符串1>字符串2,则函数值为一个正整数。
(3)如果字符串1<字符串2,则函数值为一个负整数。
说明:字符串比较的规则是:将两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。如果全部字符相同,则认为两个字符串相等;若出现不同的字符,则以第一对不同的字符的比较结果为准。另外,如果参加比较的两个字符串都由英文字母组成,则有一个简单的规则:在英文字典中位置在后面的为“大”,但应注意小写字母比大写字母“大”。
注意:两个字符串比较不能用以下形式:
if(str1>str2)
printf("yes");
因为str1和str2代表地址而不代表数组中的全部元素,而只能用:
if(strcmp(str1,str2)>0)
printf("yes");
6.strlen函数——测字符串长度函数
一般形式为:strlen(字符数组)
其作用是测试字符串长度,函数的值为字符串中的实际长度(不包括'\0'在内)。
例如:
输出结果:
也可以直接测试字符串常量的长度,如:strlen("China");输出结果与上面相同。
7.strlwr函数——转换为小写的函数
一般形式为:strler(字符串)
其作用是将字符串中的大写字母转换成小写字母。
8.strupr函数——转换为大写的函数
一般形式为:strupr(字符串)
其作用是将字符串中的小写字母转换成大写字母。
注意:在使用字符串处理函数时,应当在程序文件的开头用
#include<string.h>
上述举例中我忘记了这个,所以出现了警告如“warning C4013:'strcpy'undefined;assuming extern returning int”(虽然程序也能运行但不规范)。