1163028233 发表于 2021-7-30 22:26:18

填空题求解

输入两个字符串分别存放到字符数组str1和str2中,将str2中的字符串全部链接到str1中字符串的尾部,并将链接得到的更长的字符串存放在str1数组中。
#include<stdio.h>
int main(){
    char str1, str2;
    int i=0,j=0;
    gets(str1); gets(str2);
    while(str1!='\0')
         ①;
    while(②){
      str1=str2;
      ③;
      j++;
    }
    str=④;
    puts(str1);
    return 0;
}

这四个空怎么填?

大马强 发表于 2021-7-30 22:50:34

好家伙,你直接问答案了都

大马强 发表于 2021-7-30 23:00:21

老哥先给你点思路想想,你先自己动手试试
str2要加到str1后面,你首先就指向str1尾部了,然后再将str2拼接到str1后面,最后一位记得加终止符'\0'

大马强 发表于 2021-7-30 23:33:09

#include<stdio.h>
int main()
{
    char str1, str2;
    int i=0,j=0;
    gets(str1); gets(str2);
    while(str1!='\0')
         i++;
    while(str2!='\0'){
      str1=str2;
      i++;
      j++;
    }
    str1='\0';
    puts(str1);
    return 0;
}

1163028233 发表于 2021-7-31 20:50:29

大马强 发表于 2021-7-30 23:33


老哥,你这并没有将字符串连接起来啊?

大马强 发表于 2021-7-31 20:52:36

https://static01.imgkr.com/temp/4f010b7e18484fe39aeda17cf64bc5c3.jpg
啊这,我的可以呀

1163028233 发表于 2021-7-31 21:01:48

大马强 发表于 2021-7-31 20:52
啊这,我的可以呀

我换个编译器试试吧.....我用的VS2013

人造人 发表于 2021-8-2 23:35:02

大马强 发表于 2021-7-30 23:33


边界错误,i 不应该加 1

$ cat main.c
#include<stdio.h>
int main()
{
    char str1, str2;
    int i=0,j=0;
    gets(str1); gets(str2);
    while(str1!='\0')
         i++;
    while(str2!='\0'){
      str1=str2;
      i++;
      j++;
    }
    str1='\0';
    puts(str1);
    return 0;
}

$ gcc -g -Wall -o main main.c
$ ./main
qwer
asdf
qwerasdf▒
$


#include<stdio.h>
int main()
{
    char str1, str2;
    int i=0,j=0;
    gets(str1); gets(str2);
    while(str1!='\0')
         i++;
    while(str2!='\0'){
      str1=str2;
      i++;
      j++;
    }
    //str1='\0';
    str1='\0';
    puts(str1);
    return 0;
}

大马强 发表于 2021-8-2 23:45:27

人造人 发表于 2021-8-2 23:35
边界错误,i 不应该加 1

大意了,不该加一,循环是先加一在判断的,多加了一次,谢大佬{:10_256:}
页: [1]
查看完整版本: 填空题求解