大家帮忙看看这段代码有什么问题,谢谢了!

wangboqun99 2008-06-19 04:13:11
#include "iostream.h"
void main()
{
int flag=0,i,word=0;
char str[1000];
cout<<"请输入所要统计单词个数的字符串:"<<endl;
cin>>str;
for(i=0;str[i]!='\0';i++)
{
if(str[i]==' ')
{
flag=0;
}
else if (flag==0)
{
word++;
flag=1;
}
}
cout<<word<<endl;
}
...全文
114 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangboqun99 2008-06-19
  • 打赏
  • 举报
回复
恩,知道了,原来是这样的,谢谢大家。
HelloDan 2008-06-19
  • 打赏
  • 举报
回复

#include<iostream>
#include<cctype>

using namespace std;

int main()
{
int flag=0,i,word=0;
char str[1000];
cout<<"请输入所要统计单词个数的字符串:"<<endl;
gets(str); ///////////////////////////// here
for(i=0;str[i]!='\0';i++)
{
if(isspace(str[i])) //here
{
flag=0;
}
else if (flag==0)
{
word++;
flag=1;
}
}
cout<<word<<endl;

return 0;

}

HolyPlace 2008-06-19
  • 打赏
  • 举报
回复
学习了。帮顶!“cin>>输入时空格 tab等就截断了”
xkyx_cn 2008-06-19
  • 打赏
  • 举报
回复
cin>>输入时空格 tab等就截断了

[Quote=引用 3 楼 wangboqun99 的回复:]
是啊,为什么直接用cin输入就得不到预期的结果呢,谁能告诉我原因啊?
[/Quote]
wangboqun99 2008-06-19
  • 打赏
  • 举报
回复
是啊,为什么直接用cin输入就得不到预期的结果呢,谁能告诉我原因啊?
cehang 2008-06-19
  • 打赏
  • 举报
回复
为什么不能直接用 cin呢?
xkyx_cn 2008-06-19
  • 打赏
  • 举报
回复

#include "iostream.h"
void main()
{
int flag=0,i,word=0;
char str[1000];
cout << "请输入所要统计单词个数的字符串:" <<endl;
cin.getline(str, 1000 - 1); // 使用getline获取输入
for(i=0;str[i]!='\0';i++)
{
if(str[i]==' ' || str[i]=='\t') // \t也算分隔符之一
{
flag=0;
}
else if (flag==0)
{
word++;
flag=1;
}
}
cout << word <<endl;
}

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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