- /*
- redstar
- 2013/7/19
- 一个文件空格隔开单词的数目。
- */
- #include <iostream>
- #include <string>
- #include <fstream>
- using namespace std;
- int main()
- {
- ifstream infile("main.cpp");
- ofstream outfile("out.cpp");
- string s;
- int a = 'a';
- int ae = 'A';
- int z = 'z';
- int ze = 'Z';
- char const blank_c = ' ';
- int numi = 0;
- bool ifW = true;
- while(getline(infile, s))
- {
- ifW = false;
- for (int i = 0; i < s.size(); i++)
- {
- if ( (a <= s[i] && s[i] <= z ) || ( ae <= s[i] && s[i] <= ze ) )
- {
- // ifW 为 true的三种情况
- if ( ifW ) //从上个空格到i的字符都为字母
- ifW = true;
- else if ( i > 0 && s[i-1] == blank_c) //空格后第一个字母
- ifW = true;
- else if ( 0 == i) //一行首个字母
- ifW = true;
- }else
- {
- if ( s[i] == blank_c )
- {
- if ( ifW ) //两个空格内字符串都为字母
- numi ++;
- }
- ifW = false; //在空格内字符串有非字母字符
- }
- }
- outfile << s << "\\n";
- }
- outfile << "\\/\\/the word number of this file is : " << numi << "\\n";
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/270320149180.html
来源: http://www.codesnippet.cn/detail/270320149180.html