中易网

数据结构字符串创建问题~

答案:1  悬赏:50  
解决时间 2021-04-28 02:09
  • 提问者网友:痞子房西
  • 2021-04-27 08:11
程序要求创建一个字符串,源程序如下
#include<stdio.h>
typedef struct
{
char a[100];
int last;
}sstring;
sstring c1,c2;

void crt()
{
int i;
printf("c1=%d,c2=%d\n",c1.last,c2.last);
printf("SHU RU C1:");

for(i=0;i<c1.last;i++)
scanf("%c",&c1.a[i]);

printf("\nshu ru c2") ;
for(i=0;i<c2.last;i++)
scanf("%c",&c2.a[i]);

for(i=0;i<c1.last;i++)
printf("%c",c1.a[i]);

printf("\n");

for(i=0;i<c2.last;i++)
printf("%c",c2.a[i]);

printf("\n");
}
int main()
{
printf("shu ru c1.last:");
scanf("%d",&c1.last);
printf("\nshu ru c2.last:");
scanf("%d",&c2.last);
crt();

getch();
return 0;
}
样例shu ru c1.last:4
shu ru c2.last:3
shu ru c1:a
b

shu ru c2:a

a
b

a
为什么会这样?不是定义了字符串的长度c1.last c2.last分别为4和3吗?
怎么少了两个??请高手指点下
最佳答案
  • 二级知识专家网友:一池湖水
  • 2021-04-27 08:58
改一下

#include<stdio.h>
typedef struct
{
char a[100];
int last;
}sstring;
sstring c1,c2;

void crt()
{
int i;
printf("c1=%d,c2=%d\n",c1.last,c2.last);
printf("SHU RU C1:");
getchar(); //加入这句
for(i=0;i<c1.last;i++)
scanf("%c",&c1.a[i]); //输入字符时不要输一个回车一下,直接输入abcd
getchar(); //加入这句
printf("\nshu ru c2") ;
for(i=0;i<c2.last;i++) //输入字符时不要输一个回车一下,直接输入abc
scanf("%c",&c2.a[i]);

for(i=0;i<c1.last;i++)
printf("%c",c1.a[i]);

printf("\n");

for(i=0;i<c2.last;i++)
printf("%c",c2.a[i]);

printf("\n");
}
int main()
{
printf("shu ru c1.last:");
scanf("%d",&c1.last);
printf("\nshu ru c2.last:");
scanf("%d",&c2.last);
crt();

getch();
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息