字符串处理函数gets()、puts()、strcmp()、strlen()、strcpy()、strcat()-C语言

字符串处理函数gets()、puts()、strcmp()、strlen()、strcpy()、strcat()-C语言  

字符串标准函数的原型在头文件string.h中。
1.输入字符串──gets()函数
(1)调用方式:gets(字符数组)
(2)函数功能:从标准输入设备(stdin)──键盘上,读取1个字符串(可以包含空格),并将其存储到字符数组中去。
(3)使用说明

1)gets()读取的字符串,其长度没有限制,编程者要保证字符数组有足够大的空间,存放输入的字符串。
2)该函数输入的字符串中允许包含空格,而scanf()函数不允许。

2.输出字符串──puts()函数
(1)调用方式:puts(字符数组)
(2)函数功能:把字符数组中所存放的字符串,输出到标准输出设备中去,并用‘\n’取代字符串的结束标志‘\0’。所以用puts()函数输出字符串时,不要求另加换行符。
( 3)使用说明

1)字符串中允许包含转义字符,输出时产生一个控制操作。
2)该函数一次只能输出一个字符串,而printf()函数也能用来输出字符串,且一次能输出多个。

3.字符串比较──strcmp()函数
(1)调用方式:strcmp(字符串1 ,字符串2)
其中“字符串”可以是串常量,也可以是1维字符数组。
(2)函数功能:比较两个字符串的大小。
如果:字符串1=字符串2,函数返回值等于0;
字符串1字符串2,函数返回值正整数。
(3)使用说明

1)如果一个字符串是另一个字符串从头开始的子串,则母串为大。
2)不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理。

[案例6.7] gets函数和strcmp函数的应用。

/*案例代码文件名:AL6_7.C*/
/*功能:简单密码检测程序*/
#include "stdio.h"
main()
{char pass_str[80]; /*定义字符数组passstr*/
int I=0;
/*检验密码*/
while(1)
{clrscr();
printf("请输入密码\n");
gets(pass_str); /*输入密码*/
if(strcmp(pass_str,“password”)!=0) /*口令错*/
printf("口令错误,按任意键继续");
else
break; /*输入正确的密码,中止循环*/
getch();
I++;
if(I==3) exit(0); /*输入三次错误的密码,退出程序*/
}
/*输入正确密码所进入的程序段*/
}

4.拷贝字符串──strcpy()函数
(1)调用方式:strcpy(字符数组, 字符串)
其中“字符串”可以是串常量,也可以是字符数组。
(2)函数功能:将“字符串”完整地复制到“字符数组”中,字符数组中原有内容被覆盖。
(3)使用说明
1)字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志'\0'一起复制。
2)不能用赋值运算符“=”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数来处理。

5.连接字符串──strcat()函数
(1)调用方式:strcat(字符数组, 字符串)
(2)函数功能:把“字符串”连接到“字符数组”中的字符串尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改。
(3)使用说明
1)由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题。
2)连接前两个字符串都有结束标志'\0',连接后“字符数组”中存储的字符串的结束标志'\0'被舍弃,只在目标串的最后保留一个'\0'。

6.求字符串长度──strlen()函数(len是length的缩写)
(1)调用方式:strlen(字符串)
(2)函数功能:求字符串(常量或字符数组)的实际长度(不包含结束标志)。

7.将字符串中大写字母转换成小写──strlwr()函数
(1)调用方式:strlwr(字符串)
(2)函数功能:将字符串中的大写字母转换成小写,其它字符(包括小写字母和非字母字符)不转换。

8.将字符串中小写字母转换成大写──strupr()函数
(1)调用方式:strupr(字符串)
(2)函数功能:将字符串中小写字母转换成大写,其它字符(包括大写字母和非字母字符)不转换。

C语言是通过函数来实现模块化程序设计的。所以较大的C语言应用程序,往往是由多个函数组成的,每个函数分别对应各自的功能模块。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值