统计单词个数解决方法
统计单词个数
大家好,我刚学UNIX,有个问题,前提是 有五个目录,每个目录下至少有一个件,怎样在UNIX下,用C统计处这些文件中单词个数的总和 ,及每个单词出现的次数,多谢各位了~~
------解决方案--------------------
统计文件的单词数
读文件的一行
int main()
{
ifstream infile;
string filename;
cout < < "Please enter the file name: ";
cin > > filename;
infile.open(filename.c_str());
string line;
getline(infile, line, '\n ');
infile.close();
vector <string> wordsOfLine;
string::size_type pos = 0, prev_pos =0;
string word;
while ((pos = line.find_first_of( ' ', pos)) != string::npos)
{
word = line.substr(prev_pos, pos - prev_pos);
prev_pos = ++pos;
wordsOfLine.push_back(word);
}
wordsOfLine.push_back(line.substr(prev_pos, pos - prev_pos));
size_t numOfLine = wordsOfLine.size();
cout < < numOfLine < < "words " < < endl;
}
读整个文件的:
int main()
{
ifstream infile;
string filename;
cout < < "Please enter the file name: ";
cin > > filename;
infile.open(filename.c_str());
string line;
vector <string> wordsOfFile;
while (getline(infile, line, '\n '))
{
string::size_type pos = 0, prev_pos =0;
string word;
while ((pos = line.find_first_of( ' ', pos)) != string::npos)
{
word = line.substr(prev_pos, pos - prev_pos);
prev_pos = ++pos;
wordsOfFile.push_back(word);
}
wordsOfFile.push_back(line.substr(prev_pos, pos - prev_pos));
}
infile.close();
size_t numOfLine = wordsOfFile.size();
cout < < numOfLine < < "words " < < endl;
return 0;
}
大家好,我刚学UNIX,有个问题,前提是 有五个目录,每个目录下至少有一个件,怎样在UNIX下,用C统计处这些文件中单词个数的总和 ,及每个单词出现的次数,多谢各位了~~
------解决方案--------------------
统计文件的单词数
读文件的一行
int main()
{
ifstream infile;
string filename;
cout < < "Please enter the file name: ";
cin > > filename;
infile.open(filename.c_str());
string line;
getline(infile, line, '\n ');
infile.close();
vector <string> wordsOfLine;
string::size_type pos = 0, prev_pos =0;
string word;
while ((pos = line.find_first_of( ' ', pos)) != string::npos)
{
word = line.substr(prev_pos, pos - prev_pos);
prev_pos = ++pos;
wordsOfLine.push_back(word);
}
wordsOfLine.push_back(line.substr(prev_pos, pos - prev_pos));
size_t numOfLine = wordsOfLine.size();
cout < < numOfLine < < "words " < < endl;
}
读整个文件的:
int main()
{
ifstream infile;
string filename;
cout < < "Please enter the file name: ";
cin > > filename;
infile.open(filename.c_str());
string line;
vector <string> wordsOfFile;
while (getline(infile, line, '\n '))
{
string::size_type pos = 0, prev_pos =0;
string word;
while ((pos = line.find_first_of( ' ', pos)) != string::npos)
{
word = line.substr(prev_pos, pos - prev_pos);
prev_pos = ++pos;
wordsOfFile.push_back(word);
}
wordsOfFile.push_back(line.substr(prev_pos, pos - prev_pos));
}
infile.close();
size_t numOfLine = wordsOfFile.size();
cout < < numOfLine < < "words " < < endl;
return 0;
}