c语言的小问题,求大神帮忙解释一下!!!!
这是我编的一部分子函数typedefunsignedcharSstring[MAXSTRLEN+1];intgetstring(Sstring&s,intn){inti;...
这是我编的一部分子函数
typedef unsigned char Sstring[MAXSTRLEN+1];
int getstring(Sstring &s,int n)
{int i;
if(n>255||n<0) {printf("error"); return error;}
s[0]=n;
for(i=1;i<=n;i++)
scanf("%c\n",&s[i]);/*这里对数组s进行赋值*/
for(i=1;i<=s[0]+1;i++)/*这里将s输出*/
printf("%c",s[i]);
return ok;}
现在遇到的问题是
n的值假设为6
我输入的值为asdfgh
但是随即输出来的值为asdfg
没有最后一个元素,这是为啥??大神求解!!!! 展开
typedef unsigned char Sstring[MAXSTRLEN+1];
int getstring(Sstring &s,int n)
{int i;
if(n>255||n<0) {printf("error"); return error;}
s[0]=n;
for(i=1;i<=n;i++)
scanf("%c\n",&s[i]);/*这里对数组s进行赋值*/
for(i=1;i<=s[0]+1;i++)/*这里将s输出*/
printf("%c",s[i]);
return ok;}
现在遇到的问题是
n的值假设为6
我输入的值为asdfgh
但是随即输出来的值为asdfg
没有最后一个元素,这是为啥??大神求解!!!! 展开
展开全部
scanf("%c\n",&s[i]);\\把这句里的\n去掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议把for循环改成这样
for(i=1;i<=n;i++)
{scanf("%c",&s[i]);
if(s[i]=='\n') break;}
for(i=1;i<=n;i++)
{scanf("%c",&s[i]);
if(s[i]=='\n') break;}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询