c语言 strcpy,strcat,strcmp函数模拟实现

Posted 程序猿是小贺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 strcpy,strcat,strcmp函数模拟实现相关的知识,希望对你有一定的参考价值。

c语言 字符串strcpy,strcat,strcmp用函数实现

利用函数实现字符串拷贝

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strcpy(char *str1, const char *str2)

	//参数有效性检测
	if (str1 == NULL&&str2 == NULL)
	 
		return NULL;
	
/*
此处也可以运用断言
assert(srt1!=NULL&&str2!=NULL)
*/

	//保护参数,否则拷贝完成时会改变其地址
	char *pstr = str1;
	while (*str2 != '\\0')
	
		*pstr = *str2;
		str2++;
		*pstr++;
	
	*pstr = *str2;   //将最后的\\0赋过去
	return str1;

void main()

	char str1[30] = "Hello ";
	char *str2 = "Linux";
	printf("str1=%s\\n",str1);
	char *res = my_strcpy(str1, str2);
	printf("str1=%s\\n",res);

函数实现字符串链接

函数实现字符串链接
#include<stdio.h>
#include<stdlib.h>
char *my_strcat(char *str1, const char *str2)

	//参数有效性检测
	if (str1 == NULL && str2 == NULL)
	
		return NULL;
	

	//保护参数
	char *pstr1 = str1;
	char *pstr2 = str2;
	while (*pstr1 != '\\0')           //检查pstr1是否为\\0,不是则pstr1++,否则不执行
	
		*pstr1++;
	
	while (*pstr2!='\\0')
	
		*pstr1++ = *pstr2++;;
	
	*pstr1 = '\\0';   //将\\0赋过去
	return str1;

void main()

	char str1[30] = "Hello ";
	char *str2 = "Linux";
	printf("str1=%s\\n", str1);
	char *res = my_strcat(str1, str2);
	printf("str1=%s\\n", res);

函数实现字符串比较

#include<stdio.h>
#include<stdlib.h>
char *my_strcmp(const char *str1, const char *str2)

	//参数有效性检测
	if (str1 == NULL && str2 == NULL)
	
		return NULL;
	

	//由于定义了两个const类型的参数,所以不用保护参数
	int res;                    //定义一个值res接收结果
	while (*str1 != '\\0' || *str2 != '\\0')
	
		res = *str1 - *str2;
		if (res != 0)
			break;
		*str1++;
		*str2++;
	
	return res;

void main()

	char *str1 = "Hello ";
	char *str2 = "Hello max";
	int res = my_strcmp(str1, str2);
	printf("res=%d\\n", res);

–end

  • 由于作者能力有限,目前也只能够了解这些,若是有大佬有不一样的想法欢迎评论区不吝赐教,批评,我一定虚心接受

以上是关于c语言 strcpy,strcat,strcmp函数模拟实现的主要内容,如果未能解决你的问题,请参考以下文章

C 实现strcmp,strcpy,strcat函数

C语言——模拟实现库函数(strcat,strcmp,strcpy,srelen)

C语言中字符串常用函数--strcat,strcpy

C语言strcat函数怎么用

用C语言程序,通过自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和的功能

C语言常用字符串操作函数大全详解(strstr,strtok,strrchr,strcat,strcmp,strcpy,strerror,strspn,strchr等)