将字符串s2的内容拼接到s1中并输出

img


这个为啥只能输入不能输出。(c语言萌新,求大佬帮助😊)

%s接收字符串,%c接收单个字符,而且,for循环中接收50个字符就把字符长度限定死了。

img

代码修改如下

#include <stdio.h>
int main()
{
    int i,j;
    char s1[50],s2[50];
    scanf("%s",s1); //读取字符串1
    scanf("%s",s2); //读取字符串1
    for (i=0;s1[i]!='\0';i++)
        ;
    for(j=0;s2[j] != '\0';j++)
    {
        s1[i] = s2[j];
        i++;
    }
    s1[i] = 0;
    printf("%s",s1);
    return 0;
}

输入都是错的啊
前两个for循环去掉,改成 gets(s1);gets(s2);就完成字符串输入了
最后一个for循环,j<50是错误的
printf也是错误的

#include <stdio.h>
int main()
{
    int i=0,j=0;
    char s1[50]={0},s2[50]={0};
    gets(s1);
    gets(s2);
    for(i=0;s1[i] !='\0';i++);
    while(s2[j] != '\0')
        s1[i++] = s2[j++];
    puts(s1);
    return 0;
}


s1[i]改为s1
printf("%s\n",s1);

img


#include <stdio.h>
#include<string.h>
int main()
{
    int i, j;
    char s1[50], s2[50];
    scanf("%s", s1); //读取字符串1
    scanf("%s", s2); //读取字符串1
    strcat(s1, s2);
    printf("%s",s1);
    return 0;
}