设法将vector对象中的所以词都改写成大写形式
来源:互联网 发布:宣城太守知不知 编辑:程序博客网 时间:2024/06/06 02:53
今天在学C++容器中的vector,书后面有个练习题:
从cin读入一组词并把它们存入一个vector对象,然后设法把所有词都改写成大写的形式。输出改变后的结果,每个词占一行。
然后我的第一想法是这样的:
#include<iostream>#include<string>#include<ctype.h>#include<vector>using namespace std;int main(void){ string word; vector<string> str; int i=0; while(cin>>word) str.push_back(word); for(decltype(str.size()) index = 0;index != str.size();++index) { str[index] = toupper(str[index]); } cout<<str<<endl; return 0;}当然这个程序错误百出,是个错误的示范,上面的程序学string对象时是可以实现的,但是vector不同于string,是不可能用同一种方法实现的。
错误一:这样用for循环遍历vector对象
错误二:就算上面的for循环遍历成功,用toupper把一整个string对象转为大写也是不可行的,toupper一次只能转换一个字符
错误三:直接用cin简单粗暴的输出vector对象
正确演示(来自与C++ Prime习题解答):
#include<iostream>#include<string>#include<ctype.h>#include<vector>using namespace std;int main(void){ string str; vector<string> vec; char cont = 'y'; cout<<"请输入第一个词:"<<endl; while(cin>>str) { vec.push_back(str); cout<<"你要继续吗?(y or n)"<<endl; cin>>cont; if(cont != 'y'&& cont != 'Y') break; cout<<"请输入下一个词:"<<endl; } cout<<"转换后的结果是:"<<endl; for(auto &mem:vec) //使用范围for循环语句遍历vec中的每个元素 { for(auto &c : mem) //使用范围for循环语句遍历mem中的每个字符 c = toupper(c); //改写为大写字母形式 cout<<mem<<endl; } return 0;}下面是程序允许演示:
阅读全文
0 0
- 设法将vector对象中的所以词都改写成大写形式
- 将a链接写成按钮的形式
- 将人民币数字转换成大写形式
- 将人民币数字转换成大写形式
- javascript将数字转化成大写形式
- 将一串数字转为大写人民币形式
- 汇编中为什么将FFFFh写成0FFFFh的形式
- 将bean对象写成xml格式
- 数据库中返回多条记录,写成list形式,并且将list转换成json形式
- 从cin读入一组词并把它们存入一个vector对象中去,如何把所有的词都改为大写形式,输出结果,每个词占一行。
- 将数字转换为大写的形式;例如(100 - 壹百)
- 将阿拉伯数字转换成大写形式(完整)
- -------------------------SQL SERVER函数将人民币数字转换成大写形式---------------------
- C#将金额转化为人民币大写形式
- 将金额转化为人民币大写形式 javascript版
- 将人民币从数字转换成大写形式
- Javascript:将人民币数字转换成大写形式
- 将数字金额转换成大写人民币形式
- MiniUI小结和感悟
- mysql查询最近7天入库数据
- javascript从jQuery中借鉴的DOM操作
- RPC
- 数据库性能优化:数据库表优化
- 设法将vector对象中的所以词都改写成大写形式
- SQLyog error 2003 Can't connect to MySQL server on 'localhost' (0)
- Android 系统稳定性
- Android 4.0- 4.4 不支持TLS v1.1 和TLS v1.2
- [C#防止反编译].NET 产品版权保护方案 (.NET源码加密保护)
- 轮播图
- eclipse 创建maven项目
- Mongo常用操作汇总
- Linux下实现Post方式