【发布时间】:2013-11-13 01:13:44
【问题描述】:
我正在尝试编写一个程序来读取文本文件,计算每个唯一单词,然后对唯一单词列表进行排序并列出每个单词的出现次数。但是,我似乎无法从字符串中读取单个单词,而不会弄乱并阅读字母、数字和符号。我读过其他主题,但我的逻辑在某些方面存在严重缺陷,这是我看不到的。
int main()
{
fstream fp;
string line;
fp.open("syllabus.txt", ios::in);
getline(fp, line);
string word = findWords(line);
cout << word << endl;
}
string findWords(string &line)
{
int j = 0;
string word;
for(int i = 0; i < line.size(); i++)
{
while(isalpha((unsigned char)line[j]) != 0 && isdigit((unsigned char)line[j]) != 1)
j++;
word += line.substr(0, j) + " + ";
line = line.substr(j, (line.size() - j));
}
return word;
}
【问题讨论】:
-
您输入的文本是什么。你的输出文本是什么。你期待它是什么?
-
如果输入是“aaaa1234.01 字母季节 2013”,那么输出将是“aaaa + 字母 + 季节”。所以,基本上,只有字母、所有空格、符号和数字被去掉了。
-
我是这么想的。