m0_64573860 2022-04-07 23:22 采纳率: 66.7%
浏览 28
已结题

为什么只能赋值两次,

#include<stdio.h>
#define N 100
typedef struct{
char str[N];
int length;
}SString;
void fuzhi(SString* d)
{
int i,j;
printf("请输入你要赋值的元素的个数:\n");
scanf("%d",&i);
for(j=1;j<=i;j++)
scanf("%c",&d->str[j]);
}
int main()
{
SString a,b,c;
fuzhi(&a);
return 0;
}

img

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-04-07 23:35
    关注

    按你给的输入,a.str字符数组下标为1-5的元素分别为'\n', '1', '\n', '2', '\n'
    如果你想输入时忽略空白符,你应该在%c前加个空格,即" %c"

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月16日
  • 已采纳回答 4月8日
  • 创建了问题 4月7日