|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
|
|