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;
}
相关推荐
葡萄城技术团队14 分钟前
【性能优化篇】面对万行数据也不卡顿?揭秘协同服务器的“片段机制 (Fragments)”
前端
程序员阿峰26 分钟前
2026前端必备:TensorFlow.js,浏览器里的AI引擎,不写Python也能玩转智能
前端
Jans27 分钟前
Shipfe — Rust 写的前端静态部署工具:一条命令上线 + 零停机 + 可回滚 + 自动清理
前端
徐小夕27 分钟前
JitWord 2.3: 墨定,行远
前端·vue.js·github
南果梨41 分钟前
OpenClaw 完整教程!从安装到使用(官方脚本版)
前端·git·开源
大雨还洅下43 分钟前
前端手写: new操作符
前端
hqk1 小时前
鸿蒙项目实战:手把手带你实现 WanAndroid 布局与交互
android·前端·harmonyos
是糖糖啊1 小时前
OpenClaw 从零到一实战指南(飞书接入)
前端·人工智能·后端
Despupilles2 小时前
第三篇、基本骨架结构
前端
swipe2 小时前
从原理到手写:彻底吃透 call / apply / bind 与 arguments 的底层逻辑
前端·javascript·面试