我是靠谱客的博主 典雅音响,最近开发中收集的这篇文章主要介绍模拟实现strcpy、strcmp、strcat和strstr函数一、对应字符串操作库函数介绍二、模拟实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 一、对应字符串操作库函数介绍
    • 1、strcpy
    • 2、strcmp
    • 3、strcat
    • 4、strstr
  • 二、模拟实现
    • 1、strcpy
    • 2、strcmp
    • 3、strcat
    • 4、strstr


一、对应字符串操作库函数介绍

1、strcpy

strcpy是字符串拷贝的库函数,可以将源字符串拷贝到目的字符串当中去,并且将源字符串的 ‘’ 也拷贝过去。

2、strcmp

strcmp是字符串比较函数,比较给定两个字符串的大小
例如strcmp(arr1, arr2),函数的返回值如下
如果字符串arr1>arr2 返回一个大于0的数
如果字符串arr1=arr2 返回 0
如果字符串arr1<arr2 返回一个小于0的数

3、strcat

字符串追加函数,从目标字符串的第一个为起点开始拷贝,源字符串的也会拼接到目的字符串

4、strstr

寻找子串的函数,如果string存在与strCharSet相同的字符串,return string中相同字符串中的第一个字符的地址

二、模拟实现

1、strcpy

//char* my_strcpy(char* dest,const char* src)
//{
//	assert(dest && src);
//	char* ret = dest;
//	while (*src)
//	{
//
*dest = *src;
//
dest++;
//
src++;
//	}
//	*dest = *src;
//	return ret;
//}
//改进
char* my_strcpy(char* dest, const char* src)
{
assert(dest && src);
char* ret = dest;
while (*dest++ = *src++)
{
;
}
return ret;
}
int main()
{
char arr1[20] = { 0 };
char arr2[] = "Hello World";
my_strcpy(arr1,arr2);
printf("%sn", arr1);
return 0;
}

实现效果

在这里插入图片描述

2、strcmp

int my_strcmp(const char* str1,const char* str2)
{
assert(str1 && str2);//断言,如果str1或str2为空指针就会报警告
while (*str1 && *str2)
{
if (*str1 == *str2)
{
str1++;
str2++;
}
else
return (int)(*str1 - *str2);
}
if ((*str1 == 0 && *str2 != 0) || (*str1 != 0 && *str2 == 0))
{
return (int)(*str1 - *str2);
}
else
return 0;
}
int main()
{
char arr1[] = "abcdef";
char arr2[] = "abcde";
int ret = my_strcmp(arr1,arr2);
printf("%dn", ret);
return 0;
}

实现效果

在这里插入图片描述

3、strcat

char* my_strcat(char* dest,const char* src)
{
assert(*dest && *src);
char* ret = dest;
//找
while (*dest)
{
dest++;
}
//拷贝
while (*dest++=*src++)
{
;
}
return ret;
}
int main()
{
char arr1[20] = "Hello ";
char arr2[] = "World";
//my_strcat(arr1,arr2);
printf("%sn", my_strcat(arr1, arr2));
return 0;
}

实现效果

在这里插入图片描述

4、strstr

char* my_strstr(const char* buf1,const char* buf2)
{
assert(*buf1 && *buf2);
char* s1 = NULL;
char* star1 = (char*)buf1;
char* star2 = (char*)buf2;
if (*buf2 =='')
return star1;
while (*star1)
{
s1 = star1;
star2 = buf2;
while (*s1 && *star2 && (*s1==*star2))
{
s1++;
star2++;
}
if (*star2 == 0)
return star1;//找到了
star1++;
}
return NULL;//没有要找的字符串
}
int main()
{
char arr1[] = "abccdefg";
char arr2[] = "cde";
//my_strstr(arr1,arr2);
printf("%sn", my_strstr(arr1, arr2));
return 0;
}

实现效果

在这里插入图片描述

最后

以上就是典雅音响为你收集整理的模拟实现strcpy、strcmp、strcat和strstr函数一、对应字符串操作库函数介绍二、模拟实现的全部内容,希望文章能够帮你解决模拟实现strcpy、strcmp、strcat和strstr函数一、对应字符串操作库函数介绍二、模拟实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部