【发布时间】:2016-03-21 15:42:19
【问题描述】:
程序输出会是这样的:
string1 : stack
string2 : overflow
changed string is : sotvaecrkf
*string1 的第 N 个字符由 string2 的第 N 个字符连接
但是每次我运行并向 string1 和 string2 提供输入时,我的 DevC++ 都会崩溃
C 代码:
#include<stdio.h>
#include<string.h>
void zips();
void main(){
zips();
}
void zips(){
printf("enter string1:");
char s1[120],s2[120],s[120],y,z;
scanf("\n%s",s1);
printf("\nenter string2:");
scanf("\n%s",s2);
int leng,increasedlength,i;
int leng1=strlen(s1),leng2=strlen(s2);
if(leng1==leng2){
leng=leng1;
}
else if(leng1<leng2){
increasedlength=leng2-leng1;
leng=leng2-increasedlength;
}
else{
increasedlength=leng1-leng2;
leng=leng1-increasedlength;
}
for(i=0;i<=leng;i++){
y=s1[i];
printf("%s",y);
z=s2[i];
printf("%s",z);
strcat(y,z);
}
}
【问题讨论】:
-
问题是……?
-
很难理解您在这里实际要求的内容。你怎么了?另外,你说的串联是什么意思?听起来您实际上并不想连接您的 string1 和 string2。
-
变量
y和z是单个字符,而不是字符串,因此您不能将它们打印为字符串或在strcat等字符串函数中使用它们.编译器应该对你拥有的代码发出警告,如果没有启用更多警告。 -
编辑让程序应该做什么更加清晰,但这里仍然没有问题。
-
这个问题今天以不同的形式发布了好几次......