C语言中的字符串函数的实现,strcpy,strlen,strcat,strcmp

strcpy函数实现字符串的拷贝

模拟实现strcpy函数
#include <stdio.h>
#include <assert.h>
char *my_strcpy(char *des,const char *src)
{
	char *ret = des;
	assert (des!=NULL);
	assert (src!=NULL);
	while ((*des++)=(*src++))
	{
		;
	}
	return ret;
}
int main ()
{
	char arr[10] ={0};
	char *p = "abcdef";
	char *ret = my_strcpy(arr,p);
	printf ("%s\n",ret);
	return 0;
}

 

strlen函数可以计算出字符串的长度 

int my_strlen(const char *src) 
{ 
 int count = 0;  assert(src); 
 while ((*src++)) 
 {  
 count ++; 
 }  
 return count;
 }
 
int main ()
 { 
 char *p="abcdef";  
 int ret = my_strlen(p); 
 printf ("%d\n",ret); 
 return 0; 
}

模拟实现strlen函数

 

strcat函数可以把一个字符串追加到另一个字符串中

模拟实现字符串的追加strcat
char *my_strcat(char *des,const char *src)
{
	char *ret = des;
	assert(des);
	assert(src);
	while (*des)
	{
		des++;
	}
	while ((*des++)=(*src++))
	{
		;
	}
	return ret;
}
int main ()
{
	char arr[20] = "hello ";
	char *p = "world!";
	char *ret = my_strcat(arr,p);
	printf ("%s\n",ret);
	return 0;
}

 

strcmp函数可以比较两个字符串的大小

//模拟实现字符串的比较函数strcmp 
int my_strcmp(const char *des,const char *src) 
{ assert (des); 
assert(src);
 while ((*src)||(*des)) 
{ 
if (*des>*src)
 {
 return 1;
 break; 
}
 else if (*des<*src)
 { 
return -1;
 break; 
} 
else if (*des==*src)
 { 
des++; src++; 
} 
} 
return 0; 
} 
int main () 
{ 
char *p = "cdefdf"; 
char *q ="cdef";
 int ret = my_strcmp(p,q);
 if (ret==1) 
{
 printf ("较大的字符串是:%s\n",p);
 } 
else if (ret==-1)
 { 
printf ("较大的字符串是:%s\n",q); 
} 
else if (ret==0)
 { 
printf ("两个字符串相等\n"); 
} 
return 0; 
}

 

转载于:https://www.cnblogs.com/chan0311/p/9427369.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值