C函数实现strcopy strcat strcmp strstr

strcopy函数
cpp 复制代码
char *strcpy( char *strDestination, const char *strSource );

复制字符串函数的实现

cpp 复制代码
char* my_strcopy(char* dest, char* src)
{
	char* ret = dest;
	while (*src)
	{
		*dest++ = *src++;
	}
	*dest = *src;
	return ret;
}

int main() {
	char arr[] = "abcdef";
	char arr1[20] = { 20 };
	my_strcopy(arr1, arr);
	printf("%s", arr1);
	return 0;
}
strcat函数

合并字符串

cpp 复制代码
char *strcat( char *strDestination, const char *strSource );
cpp 复制代码
char my_strcat(char* dest, const char* src)
{
	char ret=dest;
	while (*dest!='\0')
	{
		dest++;
	}
	while (*dest++=*src++)
	{
		;
	}
	return ret;
}
int main()
{
	char arr[30] = "hellow";
	char arr1[] = "world";
	my_strcat(arr, arr1);
	printf("%s ", arr);
	return 0;
}
strcmp函数

比较字符串

cpp 复制代码
int strcmp( const char *string1, const char *string2 );
cpp 复制代码
char my_strcmp(char* str1, char* str2)
{
	while (*str1==*str2)
	{
		if (*str1 == '\0')
			return 0;
		str1++;
		str2++;
}
	return (*str1 - *str2);
}
int main()
{
	char a[] = "abcd";
	char b[] = "abcd";
	int ret =my_strcmp(a, b);
	if (ret<0)
	{
		printf("<");

	}
	else if (ret > 0)
	{
		printf(">");
	}

	else
	{
		printf("==");
	}
	return 0;
}
strstr函数

在a里面查找b

cpp 复制代码
char *strstr( const char *string, const char *strCharSet );
cpp 复制代码
char* my_strstr(const char* str1, const char* str2)
{
	const char* s1 = str1;
	const char* s2 = str2;
	const char* p = str1;
	while (*p)
	{
		s1=p;
		s2 = str2;
		while (*s1 != '\0' && *s2 != '\0' && *s1 == *s2)
		{
			s1++;
			s2++;
		}
		if (*s2=='\0')
		{
			return (char*)p;
		}
		p++;
	}
	return NULL;
}
int main()
{
	char arr[] = "abcbbc";
	char arr1[] = "bbc";
	char* ret = my_strstr(arr, arr1);
	if (ret==NULL)
	{
		printf("不存在\n");
	}
	else
	{
		printf("%s", ret);
	}
	return 0;
}
相关推荐
Aniugel9 小时前
单点登录(SSO)系统
前端
鹏多多9 小时前
移动端H5项目,还需要react-fastclick解决300ms点击延迟吗?
前端·javascript·react.js
serioyaoyao9 小时前
上万级文件一起可视化,怎么办?答案是基于 ParaView 的远程可视化
前端
万少9 小时前
端云一体 一天开发的元服务-奇趣故事匣经验分享
前端·ai编程·harmonyos
WindrunnerMax9 小时前
从零实现富文本编辑器#11-Immutable状态维护与增量渲染
前端·架构·前端框架
不想秃头的程序员9 小时前
Vue3 封装 Axios 实战:从基础到生产级,新手也能秒上手
前端·javascript·面试
数研小生10 小时前
亚马逊商品列表API详解
前端·数据库·python·pandas
你听得到1110 小时前
我彻底搞懂了 SSE,原来流式响应效果还能这么玩的?(附 JS/Dart 双端实战)
前端·面试·github
不倒翁玩偶10 小时前
npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
前端·npm·node.js