字符串函数

一、strcmp

1、函数原理

strcmp是一种字符串比较函数,比较的是两个数组末尾字符ACSII码值的大小,如果末尾是'\0',0的ACSII码值比'q'小,说明数组1小于数组2.

2、函数实现

主函数可以这样写,返回值如果大于小于0,则arr1小于arr2,打印<,以此类推.

  函数部分,由于数组传的是首元素的地址,并且我们是要比较两个数组,数组不需要被修改,所以形参设置成字符指针左边要加上const,要确保传过来的数组不能为空,用assert函数.

  主体用while循环,循环条件数组相等数组++,如果两个数组都相同就返回0,不相同就跳出循环计算他们的差值.

二、strncmp

是strcmp函数的进阶用法,能控制比较多少个字符.

  这个函数是按照返回的差值进行大小判断的,返回值 > 0,arr1 > arr2,返回值 == 0,数组相等,返回值 < 0,arr1 < arr2.

   三个条件同时满足就是字符相同,字符不相同的情况下会跳出循环,返回差值. 

三、strcpy

把一个数组拷贝到目的数组中去.

 

  arr2为要拷过去的数组,arr1是目的数组.

  函数要返回目的数组的起始位置,所以函数的类型是char*,arr1、arr2传的ai是首元素的地址,要用字符指针接收,其中src防止被修改需要加上const.

  assert函数防止数组传过来的是空指针,主体用while循环,循环条件边赋值边++,极大提高了效率,最后返回start.

四、strncpy

是strcpy函数的进阶,可以控制数组拷贝几个字符过去.

  arr2只有5个字符,假如要传6个字符过去,传多多少个arr1就会补上多少个0.

   count只能是正数,所以他的类型是size_t.

   每赋值一次,count需要--一次,假如数组赋值完了,count还没为0,就需要把dest数组后面全补上0.

五、strcat

  能把一个数组拼接到另一个数组后.

  arr1目标数组

  要先将dest++至字符串末尾.

  再用一个while循环边赋值边打印.

  返回数组的起始地址.

六、strncat

strcat的进阶,能控制连接的字符个数.

  strncat函数在连接完成之后会补上‘0’.

  

  想让count正确计数,需要满足两个条件,count在*dest++时,要跟着--,减完之后,假如count还不为0,就继续在*dest后面补0,直到count等于0为止.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值