字符串函数汇总使用

本文概述了C语言中一系列字符串操作函数,包括字符转换(toupper,tolower)、拷贝(strcpy,strncpy,memmove,memcpy)、拼接(strcat,strncat)、比较(strcmp,strncmp,memcmp)以及查找(strstr,strtok)等,强调了相关头文件的使用和注意事项。
摘要由CSDN通过智能技术生成

导入

学了很多对字符串操作的函数,来汇总下

字符转换函数

toupper 

将小写字母转换为大写字母

传入小写字母转为大写字母

tolower

传入小写字母转为大写字母    注意这俩个字母都要包含头文件<ctype.h>

strcpy 字符串拷贝

把arr1里面的元素拷贝到arr2中,在拷贝时从arr1中读到 '\0'结束

strcat 字符串拼接           

在arr2中找到\0然后从这里将arr1的元素拷贝到arr2中,并在最后加上\0

strcmp 比较字符串大小

比较的是俩个字符串的每个位置顺序相同元素的ascll码值 arr2大于arr1返回大于0 等于放回0 小于返回小于0 

strncpy 字符串拷贝

比起strcpy多了个整形参数,决定的是将多少个元素从arr1中拷贝到arr2中 返回的是arr2的地址

需要注意的是若b的数大于arr1中的元素,就会填充\0以达到拷贝b个元素

strncat

b决定的是arr1拼接的元素个数,返回值为arr2的地址,会在拼接过后加上\0

若b的个数大于arr1数组的个数,则把arr1中的全部拼接之后就不管了

strncmp

b决定比较数组的几个元素, 其他的和strcmp一样的用法

strstr

在arr2中找到和arr1相同的字符串,找到了返回该字符串字arr2的首元素地址

若没有返回(NULL)

strtok

将arr2中与arr1相同的元素转换为\0,然后返回\0前面的这个字符串的首元素地址,若没有与arr1

相同的元素返回NULL arr2只用传入一次 因为strtok有一个全局变量用来记录\0之后的下一个地址

strerror

传入对应的错误代码 返回的是对应的错误信息的首字母地址

perror

必须要传入一个字符,perror中有个全局变量errno 该变量用来记录程序运行时发生的错误对应的

错误代码,perror会直接打印errno对应的错误代码和传入的字符串

memcpy

   对来个数组以字节为单位进行拷贝,具体操作和strncpy一样 注意若俩数组的空间有重叠则使用memmove 虽然memcpy能完成任务,但这是未定义的操作,是在设计是不需要它实现的操作

memcpy在进行拷贝时不会受数组类型的限制,也不会发生越界和数组空间不够等等的情况

这里的arr2 arr1的作用只是提供起始位置的地址,一个char类型为一个字节大小在交换了一个字节后也就是交换了一个元素,一个int类型4个字节,在交换了4个字节之后也就是交换了一个int类型的数据,在交换时若地址超出了数组范围也无所谓,也会继续交换,不会报错,但是这是有风险的操作,这时数组的末尾可能没有\0在打印时会出现随机值,其实数组本质上就是一串相连的地址

memmove

专门用来进行数组地址有重叠的拷贝,使用方法和memcpy一样

memset

以arr起始的地址向后的4个字节都赋值为 'w' 的ascll码值,是在字节层面的赋值

memcmp

比较的是每个字节的ascll码值的大小,返回值和strcmp一样

END

需要注意的是以上的所有字符串函数都要需要头文件<string.h>,除了俩字符函数toupper 

tolower需要<ctype.h>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值