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