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;
}
相关推荐
No0d1es38 分钟前
电子学会青少年软件编程(C语言)等级考试试卷(三级)2025年12月
c语言·c++·青少年编程·电子学会·三级
徐同保1 小时前
React useRef 完全指南:在异步回调中访问最新的 props/state引言
前端·javascript·react.js
刘一说1 小时前
Vue 导航守卫未生效问题解析:为什么路由守卫不执行或逻辑失效?
前端·javascript·vue.js
bjxiaxueliang2 小时前
一文掌握C/C++命名规范:风格、规则与实践详解
c语言·开发语言·c++
一周七喜h2 小时前
在Vue3和TypeScripts中使用pinia
前端·javascript·vue.js
weixin_395448912 小时前
main.c_cursor_0202
前端·网络·算法
寄存器漫游者2 小时前
数据结构:带头节点单链表
c语言·数据结构
东东5163 小时前
基于vue的电商购物网站vue +ssm
java·前端·javascript·vue.js·毕业设计·毕设
定偶3 小时前
MySQL多表连接查询详解
c语言·数据库·mysql
MediaTea3 小时前
<span class=“js_title_inner“>Python:实例对象</span>
开发语言·前端·javascript·python·ecmascript