填空题求解
输入两个字符串分别存放到字符数组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;
}
这四个空怎么填? 好家伙,你直接问答案了都 老哥先给你点思路想想,你先自己动手试试
str2要加到str1后面,你首先就指向str1尾部了,然后再将str2拼接到str1后面,最后一位记得加终止符'\0' #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;
}
大马强 发表于 2021-7-30 23:33
老哥,你这并没有将字符串连接起来啊? https://static01.imgkr.com/temp/4f010b7e18484fe39aeda17cf64bc5c3.jpg
啊这,我的可以呀 大马强 发表于 2021-7-31 20:52
啊这,我的可以呀
我换个编译器试试吧.....我用的VS2013 大马强 发表于 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:35
边界错误,i 不应该加 1
大意了,不该加一,循环是先加一在判断的,多加了一次,谢大佬{:10_256:}
页:
[1]