字符串操作函数详解

1.常见的字符串操作函数

2.strlen

strlen是计算字符串长度的库函数,在计算长度时不会加上 '\0',也就是 '\0'并不是字符串长度的一部分。

还需要注意的是这个库函数的返回值是一个无符号的整数(unsigned int)

进行以下操作会发生歧义

我们认为if是假的,因为str1长度小于str2,但是实际上,由于返回值为无符号整形,if是真的。

3.strcpy和strncpy

strcpy——字符串粘贴函数

特点:会把源字符串的'\0'也粘贴过去

缺陷:源字符串必须要小于目标字符串空间的大小,否则程序会崩溃

strncpy——指定长度字符串粘贴函数

特点:可以指定粘贴上去的源字符串长度

如果指定粘贴的数量比源字符串大,则在后面加上'\0',直到满足长度要求

缺陷:如果指定的长度里没有'\0',函数不会自动加上'\0'。

4.strcat和strncat

strcat——字符串追加函数

特点:将源字符串包括‘\0’一起追加在目标字符串后面

缺陷:目标空间必须能够容纳追加后的长度,源字符串必须以'\0'结尾,否则字符串长度无法预测,且会越界访问

不能自己追加追加

原因:在进行字符串追加时,源字符串追加时会把自己也给覆盖

strncat——控制长度的字符串追加函数

特点:可以指定追加源字符串的字符数量

当指定的数量小于源字符串长度,会直接加上'\0',不会再进行操作。

5.strcmp和strncmp

strcmp——字符串比较函数

缺陷:在不同的编译器中,返回值有所不同,在VS中,大于是1,小于是-1,等于是0.而在其他编译器中,大于是>=0的数,小于是<=0的数,等于也是0,因为在一些编译器中返回值是不相同字符的差。

strncmp——规定长度的字符串比较函数

缺陷:比较规定的长度,返回规则与strcmp相同

6.strstr

strstr——字符串查找函数

返回值为char* 的指针,返回查找到字符串的首地址

7.strtok

strtok——字符串分割函数

strtok函数会修改指向字符串的内容,需要注意这一特点

当strtok函数找到指定字符时会把它转换为'\0',并且返回这个字符串的首元素地址,并且记住‘\0’的位置(应该是定义了一个static类型的指针变量),下次使用函数时,不必再传入str字符指针,字节传入NULL就能完成操作。当完成分割,返回一个NULL。

注意函数两个参数都是指针,但是在实际操作中分割字符指针可以直接用"字符串"表示,而且可以选择多个分割符,且不需要用逗号隔开,如下图

而第一个参数必须是一个可以被修改的字符串,不能直接是字符串指针,如下图就不行

想要一次性把字符串全部分割完,需要用到循环结构,如下图

8.strerror

strerror——报错函数

当函数中出现某种错误,errnum会变为相应的错误码,从而打印错误信息。

9.字符串分类函数

举个例子,当 isdigit(a)中的a为0-9时 isdigit(a)为真,反之为假

10.字符串转换函数

tolower(a) 将a转换为小写字母

toupper(a) 将a转换为大写字母

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值