首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么将任意输入容器中的字符串的中字符全部改为大写字母

2013-01-08 
如何将任意输入容器中的字符串的中字符全部改为大写字母/*目的:将容器中的字符串的中字符全部改为大写字母

如何将任意输入容器中的字符串的中字符全部改为大写字母
/*
目的:将容器中的字符串的中字符全部改为大写字母
*/
#include <iostream>
#include <string>
#include <cctype>
#include <vector>

using namespace std;

int main()
{
vector<string> svec;
string str ;

cout << "请向容器中输入字符串:";
while(cin>>str)
svec.push_back(str);

cout << "=========================" << endl;

cout << "输出人群中的元素:";
vector<string>::iterator it = svec.begin();
for(;it!=svec.end();++it)
cout << *it << ' ';
cout << endl;

cout << "=========================" << endl;

cout << "将容器中的字符串中的字符改为大写:";
vector<string>::iterator sit = svec.begin();
for(;sit!=svec.end();++sit)
{
*sit = toupper(*sit) ;//此处报错,请问此处该如何改写才能实现字符串小写字母的转换?
cout << *sit << ' ';
}
cout << endl;
return 0;
}
请大家不吝赐教!!!我用的是VC6.0编译器,xp操作系统
[解决办法]
代码修改如下,你现在的代码中for循环中toupper是vector<string>中的每个string值,并不是string中的每个字符,所以肯定出错。而需要加一个循环,遍历每个string中的字符。代码修改如下:
#include <iostream>
#include <string>
#include <cctype>
#include <vector>

using namespace std;

int main()
{
vector<string> svec;
string str ;

cout << "请向容器中输入字符串:";
while(cin>>str)
svec.push_back(str);

cout << "=========================" << endl;

cout << "输出人群中的元素:"; 
vector<string>::iterator it = svec.begin();
for(;it!=svec.end();++it)
cout << *it << ' ';
cout << endl;

cout << "=========================" << endl;

cout << "将容器中的字符串中的字符改为大写:"; 
vector<string>::iterator sit = svec.begin();
for(;sit!=svec.end();++sit)

for (string::iterator iter = (*sit).begin();iter!=(*sit).end();++iter)
{
            *iter = toupper(*iter) ;
}
//*sit = toupper(*sit) ;//此处报错,请问此处该如何改写才能实现字符串小写字母的转换?
cout << *sit << ' ';
}
cout << endl;
return 0;
}

热点排行