C语言中常见的字符串函数剖析模拟

1.strlen

2.strcat

3.strcpy

4.strcmp

大伙们平常写代码时会经常用到字符串函数,我们都但很多人不知道其内部如何实现,了解函数如何实现有助于我们得心应手地使用函数,加深对函数的印象。

1.strlen 

函数原型:size_t strlen(const char* str)

此函数用来求字符串的个数

这里的str是指要计算的字符串的首元素地址,返回值是无符号整形值。

这里的ismy_strlen就是自己实现的strlen函数,对于刚入行的小伙伴可能不懂*str != '\0'是为什么。

是这样的,所有字符串结束都是以'\0'为标志的,所以我们只需要算出字符个数即可完成模拟函数。

2.strcat

函数原型:char* strcat (char*dest , const char* src);

此函数用于两个字符串拼接,也可以说是追加。

dest 表示所需追加的字符串的首地址 , src表示追加字符串,也就是后续加上去的字符串。函数返回值是追加后字符串的首地址。

ismy_strcat是我们自己实现的字符串追加函数,此函数还需注意一个点,它不适用于自己追加自己

切记字符串以'\0'作为结束标志,很多题目都会考到这个容易被我们忽略的点

3.strcpy

函数原型:char* strcpy (char* dest , const char* src);

此函数可能是我们平时最常见的字符串函数了,它的作用是将一个字符串拷贝到另一个字符串中,那个字符串被完全覆盖。

跟上一个函数一样 dest表示被覆盖的字符串,src表示所复制的字符串,函数返回值是char* 表示返回复制完字符串的首地址。

这个strcpy函数的实现非常简单,不过很多人一开始认为strcpy函数是将复制字符串复制到指定字符串中并且指定字符串还会保留一些原来的元素,其实不然,因为我们将'\0'也复制过去了,所以函数只呈现复制字符串src的身影,这个我们了解字符串本质就很好理解了

4.strcmp

函数原型:int strcmp (const char* s1 , const char s2);

此函数用于比较字符串大小,可能有小白会问:字符还能比较?答案是当然可以,字符本质是存储ascll值,是可以比较的。

s1和s2分别表示两个不同的字符串,当s1 < s2 会返回一个小于0的数 , 当s1== s2时  会返回0,当s1 > s2时 会返回一个大于0的数。

这里我们实现了strcmp函数,实质上就是两个ascll值的比较,我们需要把字符串里每个字符拆开来分析比较它们的大小关系

ps:const用来修饰保护形参。

小结:今天我向大家分享了常见的字符串函数如何模拟实现,其实还有很多字符串函数,如strstr 它的作用是在字符串中查找字符串并返回找到的位置地址,我在这里就不多叙述了,大家感兴趣可以自己去尝试模拟实现一下,可以提高大家的理解能力,最后希望我本次分享能够帮到大家!

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值