如何读入一个中间带空白的字符串?新手求解释

superpig101 2012-11-02 02:22:00
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define SIZE 40
int
main()
{
char inp[SIZE];
char outp[SIZE];
int length,i;
printf("Input a string=>");
scanf("%s",inp);
length = strlen(inp);
for(i=0;i<length;++i)
{
if(isspace(inp[i]))
{
strcpy(&inp[i],&inp[i+1]);
i=0;
}
}
strcpy(outp,inp);
printf("The new string is %s",outp);
return 0;
}
这是一个删除字符串的空白的错误程序,scanf("%s",inp);无法读入带空格的字符串,该怎么改写,谢谢。
...全文
110 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin5161678 2012-11-02
  • 打赏
  • 举报
回复
	scanf("%19[\b-~]", ch);//这个连回车都吃下去 必须输入19个字符 吃饱了才返回 
Zhou__hui 2012-11-02
  • 打赏
  • 举报
回复
gets就行了
lin5161678 2012-11-02
  • 打赏
  • 举报
回复
	scanf("%19[ -~]", ch);//读取19个字符 PS.ch最小是 char ch[20]
superpig101 2012-11-02
  • 打赏
  • 举报
回复
谢谢各位,我知道了,谢谢。
慧钦 2012-11-02
  • 打赏
  • 举报
回复
fgets(s, size, stdin),也可以从输入端获取size长的字符串
dpdp_2012 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
gets();只能以文件的方式获取数据?
[/Quote]
不是,再说你试下不就知道了?
superpig101 2012-11-02
  • 打赏
  • 举报
回复
gets();只能以文件的方式获取数据?
dpdp_2012 2012-11-02
  • 打赏
  • 举报
回复
gets(inp);
baichi4141 2012-11-02
  • 打赏
  • 举报
回复
一个字符一个字符的读取,不漏掉任何一个字符

69,373

社区成员

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

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