老师布置的作业出问题啦!

Special 2005-06-01 12:33:25
要求:查找文件中特定单词的数量。要求用到vector和string 类的"==".
我写的代码:
#include<iostream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;

int main()
{

int j=0;
string str;
vector<string> v;
ifstream in("TestFile.txt");
while (in>>str)//每次读入一个单词;
v.push_back(str);
for(int i=0;i<v.size();i++)
{
if(v[i]=="copy")
j++;

}
cout<<j<<endl;
}
TestFile.txt 文件的内容是:
copy copy copy copy, enter this is a test file.
出现的问题:结果为3,我想是因为最后一个copy后面有个逗号.高手来改下,让它过滤掉这个逗号啊!
...全文
119 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunman1982 2005-06-01
  • 打赏
  • 举报
回复
回复人: goodboy1881(三井寿)(快要闭关了) ( ) 信誉:105 2005-06-01 12:41:00 得分: 0


根据你这样的情况,你可以写如下的代码

if(v[i].substr(0,4)=="copy")


------------------
可是要是这种情况呢
copy ,copy ......
foochow 2005-06-01
  • 打赏
  • 举报
回复
goodboy1881(三井寿)(快要闭关了) 的方法不错
majcos 2005-06-01
  • 打赏
  • 举报
回复
不知道C++里面有没有正则表达式的类,用正则表达式比较方便
Special 2005-06-01
  • 打赏
  • 举报
回复
哪个testfile文件是我随便写的啊~~~不是老师给的哦~
lbing7 2005-06-01
  • 打赏
  • 举报
回复
我晕!

去改人家的题目了!!

.....................................
你在读文件的时候能不能一个字符一个字符的读?

读到空隔或者非字符再将前面的单词赋给string?

这样不用去改人家的题目
Special 2005-06-01
  • 打赏
  • 举报
回复
我晕!要是别的标点符号怎么办啊!
积木 2005-06-01
  • 打赏
  • 举报
回复
根据你这样的情况,你可以写如下的代码

if(v[i].substr(0,4)=="copy")
Special 2005-06-01
  • 打赏
  • 举报
回复
这么快啊!我刚大2呢!软件专业的!

谢谢了哈!
sunman1982 2005-06-01
  • 打赏
  • 举报
回复
我得意思是
TestFile.txt 文件的内容是:
copy copy copy copy , enter this is a test file.
这样
sunman1982 2005-06-01
  • 打赏
  • 举报
回复
或者你在copy后面加个空格 因为string是按照空格来划分的
sunman1982 2005-06-01
  • 打赏
  • 举报
回复
#include<iostream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;

int main()
{

int j=0;
string str;
vector<string> v;
ifstream in("TestFile.txt");
while (in>>str)//每次读入一个单词;
v.push_back(str);
for(int i=0;i<v.size();i++)
{
if(v[i]=="copy"||v[i]=="copy,")//呵呵
j++;

}
cout<<j<<endl;
system("pause");
}
顺便一问 楼主你大几 学习什么专业的?
Special 2005-06-01
  • 打赏
  • 举报
回复
谢谢各位的指教
sunman1982 2005-06-01
  • 打赏
  • 举报
回复
楼上你可能看错了 后面那个逗号是和copy连在一起了 呵呵 所以 不可以
cmoring 2005-06-01
  • 打赏
  • 举报
回复
if (v[i].substr(0,4) == "copy" ) 可以的,即使是copy ,copy ......也成,sting按空格分开每一个串的。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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