使用字符串处理函数

本文介绍了C语言中用于字符串操作的一系列函数,包括puts用于输出字符串,gets用于输入字符串,strcat用于字符串连接,strcpy和strncpy用于字符串复制,strcmp用于字符串比较,strlen用于计算字符串长度,以及strlwr和strupr分别用于将字符串转换为小写和大写。这些函数都在头文件中定义,使用时需先引入该头文件。
摘要由CSDN通过智能技术生成

这里我们介绍几种专门处理字符串的函数。

puts函数

这个函数的作用是输出字符串。
其一般形式为:
puts(字符数组)
起作用是将一个字符串(以’\0’结束的字符序列)输出到终端。
相当于是printf函数,但其作用的只是字符串。
如:
在这里插入图片描述
注意不要把puts里面的数组写成数组元素。

在puts函数输出的字符串中可以包含转移字符,这个跟printf函数是一样的,如:
在这里插入图片描述

gets函数

这个函数是输入字符串的函数。
其一般形式为:
gets(字符数组)

起作用是从终端输入一个字符串到字符数组,并得到一个函数值。
跟scanf函数的作用是一样的,只不过这个只作用于字符串。

在使用gets函数的时候,如果我们要给一个数组abc,我们要注意这个给的不是三个字符,而是四个,还有一个是’\0’
而对于return 0;返回值返回的函数值是字符数组的第一个元素的地址,
一般利用gets函数的目的是向字符数组输入一个字符串,而不大关心其函数值。

用puts函数和gets函数只能输入或输出一个字符串。
gets函数在VS上的使用需要改成gets_s的格式。

strcat函数

这个函数时字符串连接函数。

其一般形式是:
strcat(字符数组1,字符数组2)

strcat是STRing CATenate(字符串连接)的缩写。
其作用是把两个字符数组中的字符串连接起来,
把字符串2接到字符串1的后面,结果放在字符数组1中,
函数调用后得到一个函数值——字符数组1的地址。
如:
char c1[40]={“I am a “};
char c2[]={“boy”};
printf(”%s”,strcat(c1,c2);
在这里插入图片描述

我们在进行这个操作时,需要用到头文件<string.h>。

对于这个函数,有如下要求:
1.字符数组1必须足够大,以容纳连接后的新字符串。
在这里插入图片描述
像这个,c1[]。
这个容易报错。
2.连接前两个字符串的后面都有’\0’,连接时将字符串1后面的’\0’取消,只在新字符串后保留’\0’。

strcpy和strncpy函数

这两个函数时字符串复制函数。

其一般形式为:
strcpy(字符数组1,字符串2)

strcpy是stringcopy(字符串复制)的简写。
它表示“字符串复制函数”,作用是将字符串2复制到字符数组1中去。
如:
在这里插入图片描述
这个也有一些注意条件:
1.字符数组1必须定义的足够大,一边容纳被复制的字符串2.
2.字符数组1 必须写成数组名形式,字符串可以是字符数组名,也可以是一个字符串常量。
如:
在这里插入图片描述
3.如果在复制前未对字符数组初始化或赋值,则字符数组个字节中的内容时无法预知的,
复制时将字符串和其后面的’\0’一起复制到字符数组中,
取代字符数组中的对应位置的字符,后面的位置的数值可能是原字符数组的内容,也可能都 是’\0’
4.不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
字符数组名时一个地址常量,它不能改变值,数组名不能被赋值。
只能用strcpy函数将一个字符串复制到另一个字符数组中去。
用赋值语句只能将一个字符赋给一个字符型变量或字符数组元素。
5.可以用strncpy函数将字符串前面n个字符复制到字符数组中去,
如:
在这里插入图片描述
这个就表示把字符串的前五个元素复制后给了字符数组c1,
后面出现的字是因为系统没找到’\0’,如果在字符串中输入‘\0’就不会出现:
在这里插入图片描述

strcmp函数

这个函数时字符串比较函数。

其一般形式为:
strcmp(字符串1,字符串2)

strcmp时string compare(字符串比较)的缩写,
它的作用是比较字符串1和字符串2。

如:
strcmp(str1,str2)
strcmp(“China”,“Korea”)

字符串比较的规则是:
将两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到’\0’为止。
1.如果全部字符相同,则认为两个字符串相等。
2.若出现不相同的字符,则以第一对不相同的字符的比较结果为准。
如:
“A”<“B”,“a”>“A”,“computer”>“compare”,“these”>that",“1A”>“$20”

对于英文,英文字典后面的大,小写字母比大写字母大。

比较的结果由函数值带回,
1.如果字符串1和字符串2相同,则函数值为0
2.如果字符串1>字符串2,则函数值为一个正整数
3.如果字符串1<字符串2,则函数值为一个负整数

注意,对两个字符串的比较,只能是用strcmp函数,如果只是用下面这种方法:
if(str1>str2)
这是不行的,因为数组名只是代表地址,而不代表数组中的全部元素。

strlen函数

这个函数是测字符串长度的函数

其一般形式为:
strlen(字符数组)

strlen是string length(字符串长度)的缩写。
它是测试字符串长度的函数。
函数的值为字符串的实际长度(不包含’\0’)
如:
在这里插入图片描述

strlwr函数

这个是转换为小写函数

其一般形式为:
strlwr(字符串)

strlwr是string lowercase(字符串小写)的缩写。
函数的作用就是将字符串中大写字母换成小写字母。
如:
在这里插入图片描述
在VS上面,这个strlwr函数不能直接用,要写成 _strlwr的形式。

strupr函数

这个函数是转换为大写的函数,

其一般形式为:
strupr(字符串)

strupr是string uppercase(字符串大写)的缩写。
函数的作用是将字符串中小写字母转换成大写字母。
再次不在举例。

这些函数都包含在<string.h>这个头文件中
使用时要先引用

本篇内容到此结束。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值