模拟实现strcpy,strcat,strcmp函数

目录

一、模拟实现strcpy函数

二、模拟实现strcat函数

三、模拟实现strcmp函数

四、小结


一、模拟实现strcpy函数

strcpy函数是字符串拷贝函数,就是将源字符串拷贝到目标空间中。

char * strcpy ( char * destination, const char * source );//库函数中的声明

将源(source)指向的c字符串复制到目标(destination)指向的数组中,包括终止的空字符(并在该点停止)。
为避免溢出,目标(destination)指向的数组的大小应足够长,以包含与源相同的C字符串(包括终止的空字符),并且在内存中不应与源重叠。

在这里需要注意:

1、源字符串必须以 '\0' 结束。

1、会将源字符串中的 '\0' 拷贝到目标空间。

3、目标空间必须足够大,以确保能存放源字符串。

4、目标空间必须可变。

 下面就用my_strcpy来模拟实现stcpy函数。

#include <stdio.h>
#include <assert.h>//assert的头文件
char* my_strcpy(char* dest,const char* src)//这里用const修饰所指向的源字符串,因为源字符串是
                                           //常量字符串,不能被修改
{

    char* ret = dest;
	assert(dest);//断言源字符串和目标空间都不能为空指针
	assert(src);
	while (*dest++ = *src++)//一个字符串一个字符串的拷贝,遇到'\0'结束
	{
		;
	}
   return ret;//返回目标空间的起始地址
}
int main()
{
	char arr1[20] = { 0 };
	char arr2[] = "hello";
	printf("%s", my_strcnpy(arr1, arr2));
	return 0;
}

🥬🥬🥬🥬🥬🥬🥬🥬🥬🥬

 以上是整个字符串的拷贝&#

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
strlen、strcpystrcmpstrcat都是C语言中的字符串处理函数。其中strlen是用来计算字符串的长度的函数,其语法为:size_t strlen(const char *str),其中str表示需要计算长度的字符串。该函数的返回值为一个size_t类型的无符号整数,表示字符串的长度,不包括空字符('\0')。例如,若str为"hello",则strlen(str)的结果为5。 strcpy是用于将一个字符串复制到另一个字符串中的函数。其语法为:char *strcpy(char *dest, const char *src),其中dest表示目标字符串的地址,src表示需要复制的源字符串的地址。该函数会将src中的内容复制到dest中,并返回dest的值。例如,若src为"hello",dest为一个长度为10的字符数组,则执行strcpy(dest, src)后,dest数组中就存储了"hello"这个字符串。 strcmp是用于比较两个字符串是否相等的函数。其语法为:int strcmp(const char *s1, const char *s2),其中s1和s2表示需要比较的两个字符串。该函数会先比较s1和s2的第一个字符,若相同则继续比较后面的字符,直到不相等为止。返回值为一个整数,若s1>s2则返回正整数,若s1<s2则返回负整数,若s1=s2则返回0。例如,若s1为"abc",s2为"abd",则执行strcmp(s1, s2)后,返回的值为负整数。 strcat是用于将两个字符串连接起来的函数。其语法为:char *strcat(char *dest, const char *src),其中dest表示目标字符串的地址,src表示需要添加的源字符串的地址。该函数会将src中的内容添加到dest的末尾,并返回dest的值。例如,若dest为"hello",src为"world",则执行strcat(dest, src)后,dest数组中存储了"helloworld"这个字符串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值