解题思路和注意事项:

思路:定义两个数组,分别用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 条评论

不是那个小龙哥 2年前 回复TA
@uq_13573712741 第二个for循环多搞一次循环才能接续填入
uq_13573712741 2年前 回复TA
各位大佬请教一下为什么我这个输出一直说是答案错误?

#include<stdio.h>
#include<string.h>
int main()
{
    int i;  
    char str1[100];
    char str2[100];
    char str3[100];
    gets(str1);
    gets(str2);
    int num1;
    int num2;
    int all;
    all = num1+num2;
    num1 = strlen(str1);
    num2 = strlen(str2); 
        
    for(i=0;i<num1;i++)
    {
        str3[i] = str1[i]; 
    }
    for(i=0;i<all;i++)
    {
        str3[num1] = str2[i];
        num1++;
    }
    str3[all]='\0';
    printf("%s",str3); 
    return 0;
}
thiszwiner 2年前 回复TA
```C
#include<stdio.h>
#define N 100
int main(void) {
  	char a[N], b[N];
  	gets(a);
  	gets(b);
  	
  	printf("%s%s",a,b);
    return 0;
}
```
Sev 2年前 回复TA
#include<stdio.h>
#include<string.h>
void cat(char *a,char *b)
{
  
  char *t=&a[strlen(a)];
  while(*b!='\0')
  *t++=*b++;
  
}
int main()
{
	char a[100],b[100],t[100];
	gets(a);gets(b);
	cat(a,b);
	puts(a);
}
不惧黑夜 2年前 回复TA
@浅谐 太粗暴了  直接输出
敲代码 2年前 回复TA
#include<stdio.h>
#include<string.h>
int FlashBack(char a1[],int n1,char a2[],int n2){
	for(int i=0; i<=n1 -1; i++){
		printf("%c",a1[i]);
	}
	for(int i=0; i<=n2 -1; i++){
		printf("%c",a2[i]);
	}
	return 0;
}

int main(){
	char arr_1[20],arr_2[20];
	gets(arr_1);
	gets(arr_2);
	
	int num_1 = strlen(arr_1);
	int num_2 = strlen(arr_2);
	
	FlashBack(arr_1,num_1,arr_2,num_2);
	
	return 0;
}
浅谐 2年前 回复TA
@浅谐 n忘删了
浅谐 2年前 回复TA
#include<stdio.h>
#include<string.h>
int main()
{
	char ch[10],sh[10];
	int i,j,n;
	gets(ch);
	gets(sh);
	for(i=0;i<strlen(ch);i++)
	{
	    printf("%c",ch[i]);
	}    
	    for(j=0;j<strlen(sh);j++)
	    {
	        printf("%c",sh[j]);
	    }
	
	return 0;
}
这算粗暴解法了吧
oula 2年前 回复TA
void Merge(char a[] ,char b[])
{
    int length = strlen(a);
    int length_2 = strlen(b);
    char buff[length + length_2];
    for(int i =0;i < length;i++)
    {
        buff[i] = a[i];
    }
    for(int i = 0;i < length_2;i++)
    {
        buff[length + i] = b[i];
    }
    for(int i = 0;i < length + length_2 ;i++)
    {
        printf("%c" ,buff[i]);
    }
}
粉红佳人 2年前 回复TA
#include <stdio.h>
#include <string.h>

void change(char *p1, char *p2) {


	while (*p1) {
		p1++;
	}

	while (*p2) {
		*p1 = *p2;
		p1++;
		p2++;
	}

	*p1 = '\0';
}

int main() {
	char a[50], b[50];
	gets(a);
	gets(b);
	change(a, b);
	puts(a);
	return 0;
}