设法将vector对象中的所以词都改写成大写形式

2024-03-08 09:20

本文主要是介绍设法将vector对象中的所以词都改写成大写形式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天在学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;
}
下面是程序允许演示:


这篇关于设法将vector对象中的所以词都改写成大写形式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/786664

相关文章

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

Java第二阶段---09类和对象---第三节 构造方法

第三节 构造方法 1.概念 构造方法是一种特殊的方法,主要用于创建对象以及完成对象的属性初始化操作。构造方法不能被对象调用。 2.语法 //[]中内容可有可无 访问修饰符 类名([参数列表]){ } 3.示例 public class Car {     //车特征(属性)     public String name;//车名   可以直接拿来用 说明它有初始值     pu

模拟实现vector中的常见接口

insert void insert(iterator pos, const T& x){if (_finish == _endofstorage){int n = pos - _start;size_t newcapacity = capacity() == 0 ? 2 : capacity() * 2;reserve(newcapacity);pos = _start + n;//防止迭代

HTML5自定义属性对象Dataset

原文转自HTML5自定义属性对象Dataset简介 一、html5 自定义属性介绍 之前翻译的“你必须知道的28个HTML5特征、窍门和技术”一文中对于HTML5中自定义合法属性data-已经做过些介绍,就是在HTML5中我们可以使用data-前缀设置我们需要的自定义属性,来进行一些数据的存放,例如我们要在一个文字按钮上存放相对应的id: <a href="javascript:" d