概要
字符串函数需要包含头文件<string.h>
为了更加了解字符串函数的原理,这里我们实现一些字符串函数,例如strcpy,strcmp,strcat;
要模拟实现字符串函数的功能,首先要了解他们是干什么的,下面与模拟实现一起说了;
strcpy的模拟实现
- strcpy:str是string,cpy是copy,顾名思义strcpy是将一个字符串复制给另一个字符串,
由此可见strcpy的功能; - 根据strcpy的功能我们自己写一个函数my_strcpy
最后一行是为了获取原字符串的 ‘\0’
这里利用指针来实现功能,因为比较简单就不在详细说了 - 因为我们对这个代码简洁度不太满意吧
然后进行了简化如下:
当*tar == '\0’时ASCII码值也为0,循环停止;
strcmp的模拟实现
- strcmp:str是string,cmp是compare,因为我们不能用><=来比较字符串,所以strcmp是用来进行字符串的比较的,他比较的原理就是一个字符一个字符的比较;
根据上面我们可以退出当一个字符串比另一个字符串大的时候返回一个大于0的数,当一个字符串比另一个字符串小的时候返回一个小于0的数,当两个字符串相等时返回0; - 根据上面的特性我们对strcmp进行模拟实现建立一个my_strcmp
strcat的模拟实现
- strcat:str是string,cat是catenate,常常用来进行字符串的连接,
根据上图可知strcat是将后面的字符串连接到前面字符串的后面 - 接下来我们对他进行模拟实现,建立my_strcat
首先我们来找到前面字符串的’\0’
接下来在后面连接就可以了
小结
通过对字符串函数的模拟实现有助于我们更加了解字符串函数的工作原理;