8.6 写一函数,将两个字符串连接。

#include//8.6 写一函数,将两个字符串连接。 
void add(char a[],char b[])
{
	int len_a,len_b;
	len_a=strlen(a);
	len_b=strlen(b);
	int sum;
	sum=len_a+len_b;
	int i,j;
	for(i=len_a,j=0;i<=sum;i++,j++)
	{
		a[i]=b[j];
	}
}

int main()
{
	char a[100],b[100];
	printf("请输入数组a:");
	gets(a);
	printf("请输入数组b:");
	gets(b);
	puts(a);
	puts(b);
	printf("把数组b加到a的后边……\n");
	add(a,b);
	puts(a);
	return 0;
}

20160802今天晚上彻底掌握的了参考书上的算法。默写如下。

#include//8.6 写一函数,将两个字符串连接。
void AddString(char s1[],char s2[],char s3[])
{
	int i,j;
	for(i=0;s1[i]!='\0';i++)
	{
		s3[i]=s1[i];
	}
	printf("第一个for运行完后i=%d。\n",i);//注意i的值。 
	for(j=0;s2[j]!='\0';i++,j++)
	{
		s3[i]=s2[j];
	}
	printf("第二个for运行完后i=%d。\n",i);//注意i的值。
	s3[i]='\0';	
}

int main()
{
	char s1[100],s2[100],s3[100];
	printf("请输入s1:");
	gets(s1);
	printf("请输入s2:");
	gets(s2);
	printf("s1:");
	puts(s1);
	printf("s2:");
	puts(s2);
	AddString(s1,s2,s3);
	puts(s3);
	return 0;
}
这部分写的真好。

for(i=0;s1[i]!='\0';i++)
{
	s3[i]=s1[i];
}
	
for(j=0;s2[j]!='\0';i++,j++)
{
	s3[i]=s2[j];
}

如果数组不是从0开始的,也不会这么好用。

你可能感兴趣的:(C)