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;
}
相关推荐
2601_949847755 分钟前
Form-data 跨端三方库仓颉适配全流程
前端·javascript·flutter
zyseo820 分钟前
谷歌SEO 内容更新焕新流程:让老页面重新起量
java·前端·javascript
夜雪一千32 分钟前
标题特殊符号数据清洗实战:解决HTML实体、零宽字符、Emoji乱码踩坑
前端·html
richdata43 分钟前
从采购承诺到库存周转:降低库存资金占用的六个计划杠杆
大数据·前端·javascript
计算机魔术师1 小时前
别人IPO发股票,Anthropic一口气搞出五类
前端
ai_coder_ai1 小时前
使用Web IDE边写自动化脚本
运维·前端·自动化
从小白到软工1 小时前
5-2 从查表到控件:造按钮
c语言·开发语言·数据结构·经验分享·ai编程
水饺编程2 小时前
第2章:Linux 基础,解压缩【.tar.gz】压缩包
linux·c语言·汇编
贾伟康2 小时前
【共创稿事节】一个 UserDataManager 管八类数据:Preferences 持久化的克制用法
java·服务器·前端·harmonyos·arkts·鸿蒙
cu1432 小时前
细谈IT6653的具体功能与其应用
c语言·c++·单片机·嵌入式硬件