理论教育 C语言字符串处理函数

C语言字符串处理函数

时间:2023-11-02 理论教育 版权反馈
【摘要】:C语言提供了许多处理字符串的函数。例如,执行下面的语句:输出结果如下:3.连接字符串函数连接字符串函数格式如下:功能:将字符串2连接到字符数组名1中存储的字符串的后面,并删除字符数组名1中存储的字符串后面的'\0'。

C语言字符串处理函数

C语言提供了许多处理字符串的函数。注意:使用函数gets和puts时,要将“#include<stdio.h>”包含进程序;使用函数strcat、strcpy、strcmp、strlen、strlwr、strupr时,要将“#include<string.h>”包含进程序。

1.输入字符串函数

输入字符串函数的格式如下:

功能:从终端输入一串字符并按回车键,则该串字符存放在字符数组中。函数值是该字符数组的起始地址

例如,执行下面的语句:

然后,从键盘输入17个字符“students and book”(各单词之间有一个空格)后按回车键。这17个字符存储到字符数组st中,系统在这17个字符的后面自动添加'\0','\0'也和前面的17个字符一起存储到字符数组st中。

2.输出字符串函数

输出字符串函数的格式如下:

功能:将存储在字符数组中的字符串(以'\0'结尾的字符序列)输出到终端,在输出时将字符串结束标志'\0'转换成'\n',即输出字符序列后换行。

例如,执行下面的语句:

输出结果如下:

3.连接字符串函数

连接字符串函数格式如下:

功能:将字符串2连接到字符数组名1中存储的字符串的后面,并删除字符数组名1中存储的字符串后面的'\0'。函数值是字符数组名1的起始地址。

使用strcat函数时需要注意:字符数组名1必须定义得足够长,以便能够容纳连接后的字符串;字符串2既可以是字符数组名称,也可以是字符串常量。

例如,执行下面的语句:

输出结果如下:

另外,还可以使用函数strncat(字符数组名1,字符串2,n),将字符串2的前n个字符连接到字符数组名1中存储的字符串的后面。

4.复制字符串函数

复制字符串函数的格式如下:

功能:将字符串2中的字符串复制到字符数组名1中,字符串2末尾的字符串结束标志'\0'也复制过去。

使用函数strcpy需要注意的问题:

(1)必须用函数strcpy为一个字符数组赋值,而不能用赋值语句直接给一个字符数组赋值。例如,下面给出的两条赋值语句都是错误的。

(2)字符串2既可以是字符数组名称,也可以是字符串常量。

(3)字符数组名1必须定义得足够长,以便能够容纳复制后的字符串。(www.daowen.com)

(4)若字符串2中'\0'前面的字符数为k,则执行复制后,字符数组名1中前k个字符被字符串2的字符覆盖,字符数组名1的第k+1个字符被'\0'覆盖,而其余字符保持原样。下面的程序段说明了这个问题。

在执行“strcpy(st1,st2);”后,数组st1中各元素的存储情况如下:

该程序段执行后输出如下:

从输出可以看出,字符F与h之间无显示,这是因为那个位置的字符是'\0',字符i后面的情况也是这样。

另外,还可以使用函数strncpy(字符数组名1,字符串2,n),将字符串2的前n个字符复制到字符数组名1中。

5.比较字符串函数

比较字符串函数的格式如下:

功能:比较两个字符串的大小。若字符串1大于字符串2,则函数值为一个正整数;若字符串1小于字符串2,则函数值为一个负整数;若字符串1等于字符串2,则函数值为0。

格式中的字符串1和字符串2既可以是字符串常量,也可以是字符数组名称。

比较大小的规则:对两个字符串从左至右,按ASCII码值逐个字符比较。如果所有相同位置对应的字符全部相同,则认为两个字符串相等;如果遇到相同位置对应的字符是不相同的,则以第一次遇到的相同位置的不同字符的比较结果为准。例如:

若“char st1[10]="AB",st2[10]="BCAS"”,则strcmp(st1,st2)<0、strcmp(st1,"AB")==0、strcmp("BCF",st2)>0都成立。

6.求字符串长度函数

求字符串长度函数的格式如下:

功能:求字符串的长度。字符串既可以是字符串常量,也可以是字符数组名称。函数值为从左向右遇到的第一个'\0'左侧的所有字符数。例如,若st1、st2、st3定义如下:

那么,strlen(st1)=strlen(st2)=strlen(st3)=strlen("abc"),都等于3。

虽然字符数组st3有10个数组元素,存储了5个英文字母和若干个'\0',但strlen(st3)等于3。

7.大写字母转换成小写字母函数

大写字母转换成小写字母函数的格式如下:

功能:将字符串中的大写字母转换为小写字母,字符串中的其他字符保持不变。格式中的字符串既可以是字符串常量,也可以是字符数组名称。例如:

输出结果如下:

8.小写字母转换成大写字母函数

小写字母转换成大写字母函数的格式如下:

功能:将字符串中的小写字母转换为大写字母,字符串中的其他字符保持不变。格式中的字符串既可以是字符串常量,也可以是字符数组名称。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈