字符串的复制,比较大小,拼接

1、字符串的复制

思路:

方法一:使用库函数对字符串复制strcpy(字符数组1,字符串2)

              作用是将字符串2复制到字符数组1中去

char str1[10],str2[]="China";
strcpy(str1,str2);

方法二:构造函数

代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
void Mystrcpy1(char *desstr,char *srcstr)
{//把desstr和srcstr当作数组看待
	int i;
	for(i=0;srcstr[i]!='\0';i++)
	{
		desstr[i] = srcstr[i];
	}
	desstr[i] = '\0';
}

void Mystrcpy2(char *des,char *src)
{
	int i;
	for(i=0;*(src+i)!='\0';i++)
	{
		*(des+i) = *(src+i);
	}
	*(des+i) = '\0';
}

void Mystrcpy3(char *des,char *src)
{
	while(*src != '\0')
	{
		*des = *src;
		des++;
		src++;
	}
	*des = '\0';
}

void Mystrcpy4(char *des,char *src)
{
	while(*src != '\0')
	{
		*des++ = *src++;
	}
	*des = '\0';
}

void Mystrcpy5(char *des,char *src)
{
	while(*des++ = *src++) ;
}
int main()
{
	char str1[] = "abcde";
	char str2[10];
	char str3[] = "xyz";
	Mystrcpy5(str2,str1);
	printf("str2=%s\n",str2);
return 0;
}

 2,字符串比较大小

方法一:库函数strcmp(字符串1,字符串2)

        字符串比较规则:将两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同字符或遇到'\0'为止。

方法二:构造函数

代码如下:

int Mystrcmp(const char *str1,const char *str2)
{
	assert(str1!=NULL && str2!=NULL);
	int gap;
	while(((gap=*str1-*str2)==0) && (*str1!='\0'))
	{
		str1++;
		str2++;
	}
	return gap;
}

int main()
{
	printf("%d\n",Mystrcmp("abcd","abx"));
	printf("%d\n",Mystrcmp("abzd","abx"));
	printf("%d\n",Mystrcmp("x","abx"));
	printf("%d\n",Mystrcmp("abcd","abcd"));

	return 0;
}

3,字符串拼接

方法一:库函数strcat(字符数组1,字符数组2)

注意:字符数组1足够大,以便容纳连接后的新字符串。

方法二:构造函数

代码如下:

char *Mystrcat(char *des,const char *src)
{
	assert(des!=NULL && src!=NULL);
	char *p = des;

	while(*des!='\0')//找尾巴
	{
		des++;
	}
	while(*des++ = *src++);//复制

	return p;
}
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值