像这样的处
- {
- vector<string> text;
- ifstream infile("a.txt");
- ofstream outfile("b.txt");
- if(infile.fail()) {
- cout<<"open file a.txt failed!";
- return ;
- }
- string ss="";
- char c;
- while(infile.get(c)/*infile.get(c,30,' '|'\n')*/)
- {
- if(isspace(c)&&!ss.empty())
- {
- text.push_back(ss);
- // ss.~string();
- ss="";
- }else
- {
- if(isalpha(c))
- {
- c=toupper(c);
- ss.append(1,c);
- }
- else
- ss.append(1,c);
- }
- }
- for(vector<string>::iterator iter=text.begin();iter!=text.end();iter++)
- outfile<<*iter<<" ";
- }
理每一单词的每一个字符,我最开始的想法是:(代码如上)
变量:一个字符,一个字符串;逢空格写满一个字符串;逢非空格的字符判断是否为大写,转化然后追加到串中存着;
比较的好的处理的方法是这样:
先一个字符串的读到vector<string> vec中,仅vec变量就可完成所有操作;vec[i][j]就是取字符;
另附:a(97) A(65) LF(10)换行 RS(32) 记录分隔符
转载于:https://blog.51cto.com/peacefulmind/999599