首页 理论教育 C语言字符串处理函数-C语言程序设计

C语言字符串处理函数-C语言程序设计

时间:2023-10-20 理论教育 版权反馈
【摘要】:C语言提供了丰富的字符串处理函数,大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。用于输入/输出的字符串函数,在使用前应包含头文件"stdio.h",使用其他字符串函数则应包含头文件"string.h"。下面介绍几个最常用的字符串函数。以下用法是正确的:以下用法是错误的:字符串比较。

C语言字符串处理函数-C语言程序设计

C语言提供了丰富的字符串处理函数,大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。使用这些函数可大大减轻编程的负担。用于输入/输出的字符串函数,在使用前应包含头文件"stdio.h",使用其他字符串函数则应包含头文件"string.h"。

下面介绍几个最常用的字符串函数。

1.输入字符串函数gets

格式:gets(字符数组名)

功能:gets()函数用于读取从标准输入设备(键盘)输入的一个字符串存储到指定的字符数组,与scanf()函数不同的是,gets()可以输入不可见的字符(如空格、制表符)。

2.输出字符串函数puts

格式:puts(字符数组名)

功能:puts()函数用于把存储在字符数组的字符串输出到标准设备(屏幕),输出到'\0'时自动换行。

【例7.10】从键盘输入一个字符串,然后分别显示字符串的每个字符及其对应的ASCII 码。

程序代码:

运行结果:

程序讲解:

本例程序中,gets()和puts()函数一次只能对一个字符串进行操作,即只能输入、输出一个字符串;而scanf()、printf()一次可以输入、输出几个字符串。

3.字符串拷贝函数strcpy

格式:strcpy(字符数组名1,字符数组名2)

功能:把字符数组2 中的字符串复制到字符数组1 中,字符串结束标志'\0'也一同复制。字符数组1 的长度必须不小于字符数组2 的长度。字符数组2 也可以是一个字符串常量,这时相当于把一个字符串赋予一个字符数组。

注意:字符数组2 中的字符串将覆盖字符数组1,这一点与strcat 完全不同。

例如:

注意:"字符数组1"必须是字符数组名称。

【例7.11】字符串复制。

程序代码:

运行结果:

程序讲解:

本例程序中,定义字符数组st1、st2,并对st2数组赋以"C Language"初始化。"strcpy(st1,st2);"把st2 数组中的字符串复制到st1 字符数组中,并输出st1。

4.字符串连接函数strcat

格式:strcat(字符数组名1,字符数组名2)

功能:把字符数组2 中的字符串连接到字符数组1 中字符串的后面,并删去字符串1 后的字符串结束标志'\0'。本函数返回值是字符数组1 的首地址。(www.xing528.com)

例如:

最终s1 中存储的字符串为"this is a test!"。

【例7.12】字符串的连接。

程序代码:

运行结果:

5.字符串比较函数strcmp

格式:strcmp(字符数组名1,字符数组名2)

功能:比较两个字符串的大小。将两个字符串中对应位置上的字符从左向右(按ASCII码值)逐个比较,直到遇到第一个不相同的字符或 '\0' 结束。函数返回一个整数值。

字符串1=字符串2,返回值=0;

字符串1>字符串2,返回值>0;

字符串1<字符串2,返回值<0。

例如:

注意:字符串只能用strcmp函数判断两个字符串是否相等,不能用关系运算符"=="来比较两个字符串是否相等。

以下用法是正确的:

以下用法是错误的:

【例7.13】字符串比较。

程序代码:

运行结果:

程序讲解:

本程序中把输入的字符串与数组st2 中的字符串进行比较,比较结果返回到k 中,根据k值再输出结果提示串。当输入为" how are you"时,由ASCII码可知" how are you"大于"C Language"故k>0,输出结果"st1>st2"。

6.字符串长度函数strlen

格式:strlen(字符数组名)

功能:测字符串的实际长度(不含字符串结束标志'\0')并作为函数返回值。

例如:

运算结果n 等于15。

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

我要反馈