解题思路和注意事项:

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

linnix 10月前 回复TA
#include<stdio.h>
#include<string.h>
void link(char a[],char b[],int l1,int l2)
{
    char c[9999];
    int i,j,k;
    for(i=0,k=0;i<l1;i++,k++){
        c[k]=a[i];
    }
    for(j=0;j<l2;j++,k++){
        c[k]=b[j];
    }
}
int main()
{
    char a[9999],b[9999],c[9999];
    gets(a);
    gets(b);
    int l1,l2;
    l1=strlen(a);
    l2=strlen(b);
    link(a,b,l1,l2);
    puts(c);
    return 0;
}
哪里有问题
隐世 11月前 回复TA
#include<stdio.h>
#include<string.h>
void link(char arr1[], char arr2[])
{
	int len1 = strlen(arr1);
	int len2 = strlen(arr2);
	int i = 0;
	int j = 0;
	for (i = len2; i < len1 + len2; i++, j++)
	{
		arr1[i] = arr2[j];
	}
}
int main()
{
	char arr1[1000] = { 0 };
	char arr2[1000] = { 0 };
	scanf("%s", arr1);
	scanf("%s", arr2);
	link(arr1, arr2);
	printf("%s\n", arr1);

	return 0;
}
向志权 12月前 回复TA
#include<stdio.h>
#include<string.h>
int main()
{
	char a[100],b[100];
	scanf("%s",&a);
	scanf("%s",&b);
	printf("%s\n",strcat(a,b));
	return 0;
}
damon 1年前 回复TA
@uq_13573712741 1.all = num1+num2;     num1 = strlen(str1);     num2 = strlen(str2);的先后顺序有问题,应改为   num1 = strlen(str1);     num2 = strlen(str2); all = num1+num2;  2.第二个for循环for(i=0;i<all;i++)错误,应改为for(i=0;i<num2;i++)
3g芯片 1年前 回复TA
#include <stdio.h>
#include<string.h>
void char_connect(char *p1, char *p2, int m, int n);
void main(void)
{
    char a[100];
    char b[100];
    int m;
    int n;
    
    scanf("%s",&a);
    scanf("%s",&b);

    m = strlen(a);
    n = strlen(b);

    char_connect(&a[0], &b[0], m, n);
    printf("%s",a);
}

void char_connect(char *p1, char *p2, int m, int n)
{
    int i;

    for (i = 0; i < n; i++) 
    {
        *(p1+m+i) = *(p2+i);
    }

}
哆啦A盾 1年前 回复TA
#include<stdio.h>
void an(char a[],char b[]);
int main(void){
	char a[100];
	char b[100];
	gets(a);
	gets(b);
	an(a,b);
    return 0;
}
void an(char a[],char b[]){
	printf("%s%s",a,b);
}
Travis 1年前 回复TA
#include <string.h>
void myCat(char ch1[], char ch2[], int sz)
{
	int j = 0;
	for (j = 0; j < sz; j++)
	{
		ch1[strlen(ch1)] = ch2[j];
	}
	printf("%s\n", ch1);
}

int main()
{
	char ch1[20] = { 0 };
	char ch2[10] = { 0 };
	scanf("%s", ch1);
	scanf("%s", ch2);
	int sz = strlen(ch2);
	myCat(ch1,ch2,sz);
	return 0;
}
梧高凤必至 1年前 回复TA
@归鸿 6
归鸿 1年前 回复TA
#include<stdio.h>
#include<string.h>
int main()
{
	char a[100]={0};char b[100]={0};
	gets(a);
	gets(b);
	for(int i=0;i<strlen(b);i++)
	{
		a[strlen(a)]=b[i];
	}
	printf("%s",a);
	return 0;
}
1年前 回复TA
@Kanays 连接起来变成一个输出,理解错题目了吧