帮忙思考有趣问题

afxboy 2003-08-22 10:54:36
我用char key[200]存贮一个字符串
scanf("%s",key);
然后,搜索文件里的字符串。(每行一个串)
比较两者用strcmp.
如果我用 "abc" ,"abc空格空格“,查找的结果是一样的。
很有趣,scanf时把后面的空格不要而丢掉了吗?为什么阿??
...全文
30 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liao2001 2003-08-22
  • 打赏
  • 举报
回复
有趣???
是C没学好吧
afxboy 2003-08-22
  • 打赏
  • 举报
回复
?娜你怎么做
Meuck 2003-08-22
  • 打赏
  • 举报
回复
不喜欢用scanf,
如果同时用几次的话会有问题。
以前写作业的时候把我害惨了!
afxboy 2003-08-22
  • 打赏
  • 举报
回复
gets ,getch都会容易造成内存溢出,自己写了一个好用
scanf用的不多。它是以空格来进行分开数据的。
Meuck 2003-08-22
  • 打赏
  • 举报
回复
说没有学好的,不是说我吧?
哈哈~~
Meuck 2003-08-22
  • 打赏
  • 举报
回复
char p[100];
scanf("%s",p);
scanf("%s",p);
scanf("%s",p);
scanf("%s",p);

同样,就不可以了。


Meuck 2003-08-22
  • 打赏
  • 举报
回复
其实gets()也不是次次可以。
原因我想是因为下上一个字符串的回车去了下一行。
cin都决对没有问题。

char p[100];
gets(p);
gets(p);
gets(p);
有时是不可以的啊。
Bandry 2003-08-22
  • 打赏
  • 举报
回复
不是有趣,是你基础知识不够扎实,书本上的东西都没有学会。
Meuck 2003-08-22
  • 打赏
  • 举报
回复
有时用gets(),在c++就用cin
再不是就自已写.
Dragon132 2003-08-22
  • 打赏
  • 举报
回复
在字符串中空格会被认为成字符串结束标志所以不能用strcmp来比较有空格的字符串
hellobcb 2003-08-22
  • 打赏
  • 举报
回复
补充:
gets()函数用来从标准输入设备读取字符串直到有回车才结束, 但回车符
不属于这个字符串。
hellobcb 2003-08-22
  • 打赏
  • 举报
回复
对,其实并没有趣:
对于空白字符,“空白字符会使scanf()函数在读操作中略去输入中的一个或多
个空白字符。”
Dragon132 2003-08-22
  • 打赏
  • 举报
回复
用gets()可以

69,368

社区成员

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

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