C语言字符串修改

騎蝸牛追导弹 2020-06-02 11:39:27
void getString(String *S)
{
char chs;
int k=0;
fflush(stdin);
do
{
while((chs=getchar())!='\n'&&k<MAXSIZE)
{
S->ch[k]=chs;
++k;
}
S->ch[k]='\0';
S->Len=k;
}while(S->Len<2);
printf("字符串是:");
if(S->ch[0]=='\0')
printf("空串");
else
{
puts(S->ch);
printf("串长度为:%d\n",S->Len);
}
system("pause");
}


(4)定义函数getsuing(Suming*S),用于动态输入字符串,采用getchar(函数单个字符性输入,赋值给数
组S→sming的每个成员。输入字符串(长度不得超过)MAXSZE个字符,存储在S->sming中,回车键
输入结束。函数原型如下:
voidgestringSsming*S)∥建立一个新串


按这个要求修改,求大神解!
...全文
192 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2020-06-02
  • 打赏
  • 举报
回复
while((chs=getchar())!='\n'&&k<MAXSIZE)
建议改成

while((chs=getchar())!='\n'&&k<MAXSIZE-1)

因为至少要给'\0'留一个字符空间

if(S->ch[0]=='\0')
printf("空串");

这个判断是多余的吧,因为当k是0时,能从while (s->len > 2)的循环中跳出来?
qiu_shaofeng 2020-06-02
  • 打赏
  • 举报
回复
参考getline(char s[],int MAXLINE)写,教科书上有。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧