解题思路和注意事项:

思路:定义两个数组,分别用gets()函数输入,再用strcat()进行连接,最后用puts()函数进行输出即可。

函数用法:gets()和puts()函数请见上一篇文章。

                 strcat()就是将两个char型进行连接,在头文件string.h中。

                        表现形式:strcat(a,b)。把a所指字符串添加到b结尾处(覆盖a结尾处的'\0')。


注意:a和b所指内存区域不可以重叠且a必须有足够的空间来容纳b的字符串。


参考代码:


#include<stdio.h>
#include<string.h>
int main()
{
	char a[1000],b[1000];
	gets(a);
	gets(b);
	strcat(a,b);
	puts(a);
	return 0;
}


点赞(14)
 

0.0分

127 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 60 条评论

Kevin 5年前 回复TA
笑死了,这个优质解,我five body throw floor
qweuihqqi 5年前 回复TA
题目要求写一个函数,你是一只调用函数。。。
xiaohouge 5年前 回复TA
#include<stdio.h>
#include<string.h>
int fun(char a[],char b[])
{
	strcat(b,a);
}

int main()
{
	char a[100];
	char b[100];
	fun(gets(a),gets(b));
	puts(b);
	return 0;
}
这样符合题意吗?
xiaohouge 5年前 回复TA
#include<stdio.h>
#include<string.h>
int fun(char a[],char b[])
{
	return 0;
}

int main()
{
	char a[100];
	char b[100];
	fun(gets(a),gets(b));
	printf("%s%s\n",b,a);
	return 0;
}
我这样写符合题意吗?
一叶知秋 5年前 回复TA
#include <stdio.h>
#include <string.h>
char connect( char a[],char b[]);
int main()
{
  char a[1000];
  char b[1000];
  gets (a);
  gets (b);
  connect (a,b);
  puts (a);

}
char connect( char a[],char b[]){
  int i=0;
  int k=0;
  int len1 = strlen(a);
  int len2 = strlen(b);
   for( i= len1; i< len1 + len2 ; i++){
     a[i] = b[k];
     k++;
   }
   a[i]='\0';
   return *a;
}
庸才 6年前 回复TA
#include<stdio.h>
#include<string.h>
f(char *s1,char *s2,char *s3)
{
  int i,j,p,t=0;
  for(;*s1!='\0';)
         *s3++=*s1++;
     j=i;
  for(;*s2!='\0';)
	 *s3++=*s2++;
      *s3++='\0';
}
	int main()
	{
		int i;
		char a[200],b[200],c[400];
		gets(a);
	    gets(b);
		f(a,b,c);
	     puts(c);
	}
程序员 6年前 回复TA
不符合题意还优质题解,不知验题君咋想的。以下不算最好但是至少符合题意

//字符串追加

#include<stdio.h>
#include<string.h>
void Addchar(char* p1, char* p2);

void Addchar(char* p1, char* p2)
{
	int nLength1 = strlen(p1);
	int nLength2 = strlen(p2);

	memcpy(p1 + nLength1, p2, nLength2);
	p1[nLength1 + nLength2] = '\0';
}

int main()
{
	char a[100];
	char b[100];

	gets_s(a);
	gets_s(b);

	Addchar(a, b);

	puts(a);

    return 0;
}
浅滩 6年前 回复TA
和题目要求相符?
网管 6年前 回复TA
@网管 ...‘\n’知道错哪了。烫啊。。。
网管 6年前 回复TA
#include<stdio.h>
void ver(char a[],char b[])
{
	char ch[200];
	int i,j;
	for(i=0;a[i]!='\n';i++)
	{
		ch[i]=a[i];
	}
	for(j=0;b[j]!='\n';i++,j++)
	{
		ch[i]=b[j];
	}
	printf("%s",ch);
	return;
}
int main(void)
{
	char a[100];
	char b[100];
	scanf("%s %s",&a,&b);
	ver(a,b);
	return 0;
}

dalao看下哪里错了  指点下 谢谢