学习目标:
掌握常用的字符串函数使用方法
重点:
字符串函数的参数、返回值。
难点:
字符串比较函数的使用
在C的库函数中提供了一些字符串处理函数,使用它们可以很方便地处理字符串,如字符串输入、字符串输出、字符串复制、字符串连接、字符串比较、求字符串长度等。
使用时字符串函数时要包含头文件“string.h”(scanf()、printf()、puts(),gets()属于标准输入输出库“stdio.h”)。
一、字符串处理函数
1.scanf 和printf函数在字符串的使用
使用scanf和printf函数对字符串的处理时,调用语句中的输入或输出项使用的是字符数组名。(即使用字符数组名的首地址)
例:main ( )
{ char s1[3] , s2[5];
scanf(“%s%s”,s1 , s2 );
printf(%s\n%s\n”, s1 , s2 );
}
输入:
ABC DEF HK (即:希望s1=“ABC ” s2=“DEF HK”)
输出:
ABC
DEF
说明:C语言规定,scanf函数遇空格或回车就结束本次输入。
2. 字符串输出函数:puts
格式:puts(字符数组名)
功能:将一个字符串输出到终端,字符串中可以包含转义字符。
例如 :char s[ ]="China\nBeijing";
puts(s);
输出结果是:
China
Beijing
注意:puts函数会将字符串结束标志’\0’转换成’\n’,即在输出完字符串后换行。
3. 字符串读入函数:gets
格式:gets(字符数组名)
功能:从终端读入一个字符串到字符数组。该函数可以读入空格,遇回车结束输入。
例如有下面程序段:
chars[20];
gets(s);
puts(s);
运行时输入:
How do you do?↙
输出结果为:
How do you do?
4. 字符串连接函数:strcat
格式:strcat (字符数组1,字符数组2)
功能:将字符数组2中的字符串连接到字符数组1中的字符串的后面,结果放在字符数组1中。
例如有如下程序段:
chars1[14]= "China ",s2[ ]="Beijing";
strcat(s1, s2);
printf("%s", s1);
输出结果为:
China Beijing
说明:使用strcat函数时,字符数组1应作够大,以便能容纳连接后的新字符串。
5. 字符串拷贝(复制)函数:strcpy
格式:strcpy (字符数组1,字符数组2)
功能:将字符数组2中的字符串拷贝到字符数组1中。
例如有下面程序段:
chars1[8], s2[ ]= "China";
strcpy(s1, s2);
puts(s1);
程序段的输出结果是:
China
说明:(1)字符数组1的长度应大于或等于字符数组2的长度,以便容纳被复制的字符串。
(2)字符数组1必须写成数组名的形式(如上例中的s1),字符数组2也可以是一个字符串常量。例如:
char s1[8];
strcpy (s1, "China");
其结果与上例相同。
(3)执行strcpy函数后,字符数组1中原来的内容将被字符数组2的内容(或字符串)所代替。
(4)不能用赋值语句将一个字符串常量或字符数组直接赋给另一个字符数组。下面的用法是错误的:
char s1[8], s2[ ]= "China";
s1=s2;//错误
在进行字符串的整体赋值时,必须使用strcpy函数。
6. 字符串比较函数:strcmp
格式:strcmp (字符串1, 字符串2)
功能:比较两个字符串的大小,例如:
strcmp(s1, s2);
strcmp("Beijing", "Shanghai");
strcmp(s1, "China");
比较的结果由函数值带回。
(1)如果字符串1等于字符串2,函数值为0。
(2)如果字符串1大于字符串2,函数值为一个正整数(第一个不相同字符的ASCII码值之差)。
(3)如果字符串1小于字符串2,函数值为一个负整数。
请注意:比较两个字符串是否相等时,不能采用以下形式:
if (s1= =s2) printf ("yes");//错误
而只能用
if (strcmp (s1, s2)= =0) printf ("yes");
7. 字符串长度函数:strlen
格式:strlen (字符数组名)
功能:求字符数组的长度,函数值为字符数组中第一个´\0´前的字符的个数(不包括´\0´)。
例如:
char s[10]= "China";
printf ("%d", strlen (s));
输出结果为: 5
8. 字符串小写函数:strlwr
格式:strlwr (字符串)
功能:将字符串中的大写字母转换成小写字母。
9. 字符串大写函数:strupr
格式:strupr (字符串)
功能:将字符串中的小写字母转换成大写字母。

