问题:
读入一段文本到 vector 对象,每个单词存储为 vector 中的一个元素。把 vector对象中
每个单词转化为大写字母。输出 vector 对象中转化 后的元素,每 8 个词为一行输出。
代码:
1 #include <iostream> 2 #include <vector> 3 4 using namespace std; 5 6 int main() 7 { 8 cout<<"输入一段文本(Ctrl + Z 结束):"<<endl; 9 vector<string> vecStr; 10 string word; 11 while (cin>>word) 12 { 13 vecStr.push_back(word); 14 } 15 if (vecStr.size() == 0) 16 { 17 cout<<"没有输入字符串"<<endl; 18 return -1; 19 } 20 for (vector<string>::size_type i = 0; i < vecStr.size(); i++) 21 { 22 for (string::size_type j = 0; j < vecStr[i].size(); j++) 23 { 24 vecStr[i][j] = toupper(vecStr[i][j]); 25 } 26 cout<<vecStr[i]<<" "; 27 if ((i+1) % 8 == 0) 28 { 29 cout<<endl; 30 } 31 } 32 return 0; 33 }
总结:
(1)vector<type>,string的方法size返回值类型为vector<type>::size_type和string::size_type;
(2)多次读取输入数据使用while(cin>>str){};
(3)判断vector是否为空,良好的编程习惯;
(4)单个字符转换大小写的方法,toupper(c),tolower(c);
(5)使用((i +1)% 8)== 0 判断换行,形式简洁。