|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:#include<stdio.h>
#include<string.h>
int main()
{
char F1[]="########";
char F2[]="## ";
char I1[]=("####");
char I2[]=(" ## ");
char S1[]=(" ###### ");
char S2[]=("## ## ");
char H1[]=("## ##");
char H2[]=("## ##");
char C1[]=(" ###### ");
char C2[]=("## ##");
int a,i;
printf("请输入字母的间隔(空格数):");
scanf("%d",&a);
char kg[]=" ";
for(i=0;i<a;i++)
{
strcat(kg," ");
}
strcat(F1,kg);
strcat(F1,I1);
strcat(F1,kg);
strcat(F1,S1);
strcat(F1,kg);
strcat(F1,H1);
strcat(F1,kg);
strcat(F1,C1);
strcat(F2,kg);
strcat(F2,I2);
strcat(F2,kg);
strcat(F2,S2);
strcat(F2,kg);
strcat(F2,H2);
strcat(F2,kg);
strcat(F2,C2);
printf("%s\n",F1);//第一次只打印这一行,把F2那行注释
printf("%s",F2);//第二次只打印这一行,把F1那行注释
//第三次把两行都打印出来
return 0;
}
第一次打印的结果:
,是正确的
第二次打印的结果:
,也是正确的
第三次打印的结果:
,第一行(也即打印的F1)结果错误,第二行(也即打印的F2)结果正确
求问为什么会这样???
没有内存空间怎么cat ? #include <stdio.h>
#include <string.h>
int main() {
char F1[1024] = "########";
char F2[1024] = "## ";
char I1[] = ("####");
char I2[] = (" ## ");
char S1[] = (" ###### ");
char S2[] = ("## ## ");
char H1[] = ("## ##");
char H2[] = ("## ##");
char C1[] = (" ###### ");
char C2[] = ("## ##");
int a, i;
printf("请输入字母的间隔(空格数):");
scanf("%d", &a);
char kg[1024] = " ";
for (i = 0; i < a; i++) {
strcat(kg, " ");
}
strcat(F1, kg);
strcat(F1, I1);
strcat(F1, kg);
strcat(F1, S1);
strcat(F1, kg);
strcat(F1, H1);
strcat(F1, kg);
strcat(F1, C1);
strcat(F2, kg);
strcat(F2, I2);
strcat(F2, kg);
strcat(F2, S2);
strcat(F2, kg);
strcat(F2, H2);
strcat(F2, kg);
strcat(F2, C2);
printf("%s\n", F1); //第一次只打印这一行,把F2那行注释
printf("%s", F2); //第二次只打印这一行,把F1那行注释
//第三次把两行都打印出来
puts("");
return 0;
}
|
|