解题思路和注意事项:
思路:定义两个数组,分别用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; }
0.0分
164 人评分
#include<stdio.h> #include<string.h> int main() { char arr[50],brr[50]; gets(arr); gets(brr); int sz1=strlen(arr); int sz2=strlen(brr); for(int i=0; i<sz1; i++){ printf("%c",arr[i]); } for(int j=0; j<sz2; j++){ printf("%c",brr[j]); } return 0; }
把楼主的改编一下,这样更满足题目要求 #include<stdio.h> #include<string.h> void connect(char a[],char b[]) { char c[200]; *c='\0'; strcat(c,a); strcat(c,b); puts(c); } int main() { char a[200]; char b[200]; gets(a); gets(b); connect(a,b); return 0; }
各位大佬请教一下为什么我这个输出一直说是答案错误? #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; }
不是那个小龙哥 2022-11-13 17:11:04 |
第二个for循环多搞一次循环才能接续填入
末世的悲哀 2023-03-04 17:48:58 |
all = ?
王文萱 2023-03-08 21:18:53 |
数组不能直接增减
damon 2023-10-20 23:18:12 |
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++)
```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; } ```
#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); }
#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; }
#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; } 这算粗暴解法了吧
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]); } }