目录 1.模拟实现strlen 函数介绍 代码实现: 2.模拟实现strcpy 函数介绍: 代码实现 3.模拟实现strcmp 函数介绍: 代码实现 4.模拟实现strcat 函数介绍 代码实现 5.模拟实现strstr 代码实现:
友友们 我是你们的小王同学 今天带给大家 一篇保姆级的库函数的模拟实现 如果写的对大家有帮助的话 请关注我的主页:你们的三连是我最大的动力 (doge)学好c语言的小王同学的博客_CSDN博客-领域博主 还可以关注小王的gitee 比特王信哲 (bitewang) - Gitee.com
很多小伙伴在实现strcpy的时候有没有我这种情况
其实这里打印不出来的原因就是 找不到arr2里的'\0'所以一直在找导致编译器都崩了(doge)
int my_strcmp(const char*s1,const char*s2) {
assert(s1 && s2);
while (*s1 == *s2) {
if (*s1 == '\0') {
return 0;//相等
}
s1++;
s2++;
}
if (*s1 > *s2) {
return 1;
}
else {
return -1;
}
}
int main() {
char arr1[] = "abcdef";
char arr2[] = "abcdef";
int ret = strcmp(arr1, arr2);
if (ret > 0) {
printf(">\n");
}
else if (ret == 0) {
printf("==\n");
}
else {
printf("<\n");
}
printf("%d\n", ret);
}
在我们实现strcat的时候往往会出现下面这种情况
原因如下:1.arr1中不知道'\0'的位置 导致arr2一直在找 找到后 bit添加到arr1中
2.arr1的空间不够大 已经形成了内存的越界访问
以上就是小王同学给友友们带来的五中库函数的模拟实现!