把小写字母转换为大写字母

谁学逆向工程 2010-03-13 10:07:37
代码没起作用啊,什么原因
vector<string> s;
string ss;
string y;
while(cin>>ss)
{
if(ss=="X")
{
break;
}
else
{
s.push_back (ss);
}
}
cout<<"vector s有: "<<s.size ()<<" 个元素";
for(vector<string>::size_type i=0;i!=s.size ();i++)
{
y=s[i];
for(vector<string>::size_type i=0;i!=y.size ();i++)
{
y[i]=toupper(y[i]);
}
}

for(vector<string>::size_type i=0;i!=s.size();i++)
{
cout<<s[i];
}
...全文
422 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
daofen007 2010-03-14
  • 打赏
  • 举报
回复
s.push_back (ss);

string 的push_back ,参数应该是char吧
fight_flight 2010-03-13
  • 打赏
  • 举报
回复

#include<iostream>
#include<string>
#include<vector>
using namespace std;

int main(){
vector<string> s;
string ss;
string y;
while(cin>>ss)
{
if(ss=="X")
{
break;
}
else
{
s.push_back (ss);
}
}
cout<<"vector s有: "<<s.size ()<<" 个元素";
vector<string>::size_type i;//mark
for(i=0;i!=s.size();i++)
{
y=s[i];
for(vector<string>::size_type j=0;j!=y.size ();j++)//mark
{
y[j]=toupper(y[j]);
s[i]=y;//mark
}
}

for(i=0;i!=s.size();i++)
{
cout<<s[i];
}
}
昵称很不好取 2010-03-13
  • 打赏
  • 举报
回复
#include<iostream>
#include <string>
#include <vector>
#include <cctype>
using namespace std;


int main(){
vector<string> s;
string ss;
char c[50];
while(cin.getline(c,50)) //这里~~~~~~~~~
{
ss = c;
if(ss=="X")
{
break;
}
else
{
s.push_back (ss);
}
}
cout<<"vector s有: "<<s.size ()<<" 个元素";
for(vector<string>::size_type i=0;i!=s.size ();i++)
{

for(vector<string>::size_type j=0;j!=s[i].size();j++)
{
s[i][j] = toupper(s[i][j]);
}
}

for(vector<string>::size_type i=0;i!=s.size();i++)
{
cout<<s[i];
}
cout<<endl;


system("pause");
return 0;
}

kuillldan 2010-03-13
  • 打赏
  • 举报
回复
这个帖再继续下去版主就该加推荐贴了。。。
谁学逆向工程 2010-03-13
  • 打赏
  • 举报
回复
我输入一个:good morning。他不识别空格,怎么让他识别空格
a7182388 2010-03-13
  • 打赏
  • 举报
回复
谢谢楼主给我这次机会,我以后发源码都可以胸有成竹的发了!谢谢!
昵称很不好取 2010-03-13
  • 打赏
  • 举报
回复
你又瞎写了~~~~~
vector<string> s;
string ss;
string y;
while(cin>>ss)
{
if(ss=="X")
{
break;
}
else
{
s.push_back (ss);
}
}
cout<<"vector s有: "<<s.size ()<<" 个元素";
for(vector<string>::size_type i=0;i!=s.size ();i++)
{

for(vector<string>::size_type j=0;j!=s[i].size();i++)//看到没,这里最后是j++,不是i++,你写成了i++
{
s[i][j] = toupper(s[i][j]);
}
}

for(vector<string>::size_type i=0;i!=s.size();i++)
{
cout<<s[i];
}
a7182388 2010-03-13
  • 打赏
  • 举报
回复

#include <stdio.h>

int main()
{
return 0;
}
a7182388 2010-03-13
  • 打赏
  • 举报
回复
先试验以下这个C/C++源码怎么加上去,我就没加上去过一次!

#include <stdio.h>

int main()
{
return 0;
}
谁学逆向工程 2010-03-13
  • 打赏
  • 举报
回复
运行崩溃:
vector<string> s;
string ss;
string y;
while(cin>>ss)
{
if(ss=="X")
{
break;
}
else
{
s.push_back (ss);
}
}
cout<<"vector s有: "<<s.size ()<<" 个元素";
for(vector<string>::size_type i=0;i!=s.size ();i++)
{

for(vector<string>::size_type j=0;j!=s[i].size();i++)
{
s[i][j] = toupper(s[i][j]);
}
}

for(vector<string>::size_type i=0;i!=s.size();i++)
{
cout<<s[i];
}
谁学逆向工程 2010-03-13
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 thefirstz 的回复:]
引用 11 楼 xiaoyuanyuan2009 的回复:
书没写strng可以有两个下标。现在知道了
不是string可以有两个下标,而是s[i]取出的就是string,string只能有一个下标,在这里为(s[i])[j]
前面的s[i]就是一个string
[/Quote]
原来如此!!!
昵称很不好取 2010-03-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xiaoyuanyuan2009 的回复:]
书没写strng可以有两个下标。现在知道了[/Quote]
不是string可以有两个下标,而是s[i]取出的就是string,string只能有一个下标,在这里为(s[i])[j]
前面的s[i]就是一个string
ithiker 2010-03-13
  • 打赏
  • 举报
回复

for(vector<string>::size_type i=0;i!=y.size ();i++)
{
y[i]=toupper(y[i]);
}

y是string类型的,上面的vector<string>::size_type应该为string::size_type的
完整程序如下:
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
vector<string> s;
string ss;
while (cin >> ss)
{
if (ss == "X")
{
break;
}
else
{
s.push_back (ss);
}
}
cout << "vector s has: " << s.size () << " elements" <<endl;
for (vector<string>::size_type i = 0; i != s.size (); ++i)
{
for (string::size_type j = 0; j != s[i].size (); ++j)
{
s[i][j] = toupper (s[i][j]);
}
}

for (vector<string>::size_type i = 0; i != s.size(); ++i)
{
cout << s[i]<<endl;;
}

}


CCCCCCCCCCCCCCC 2010-03-13
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<string.h>
int main()
{
char string[100];
gets(string);
strupr(string);
puts(string);
return 0;
}
谁学逆向工程 2010-03-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 thefirstz 的回复:]
引用 8 楼 xiaoyuanyuan2009 的回复:
引用 7 楼 thefirstz 的回复:
俩下标就能取得字符 了?

是啊,string中重载了operator []()
举个例子vector<string>s中保存了2个字符串,分别为"hello"和"world"
则s[0]指的就是"hello",s[0][0]就是“hello”的第一个字符'h'
现在明白了吧?
[/Quote]
书没写strng可以有两个下标。现在知道了
昵称很不好取 2010-03-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xiaoyuanyuan2009 的回复:]
引用 7 楼 thefirstz 的回复:
俩下标就能取得字符 了?
[/Quote]
是啊,string中重载了operator []()
举个例子vector<string>s中保存了2个字符串,分别为"hello"和"world"
则s[0]指的就是"hello",s[0][0]就是“hello”的第一个字符'h'
现在明白了吧?
kuillldan 2010-03-13
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
#include <vector>
using namespace std;

void main()
{

vector<string> s;
string ss;
string y;
while(cin>>ss)
{
if(ss=="X")
{
break;
}
else
{
s.push_back (ss);
}
}

cout<<"vector s有: "<<s.size ()<<" 个元素";
for(vector<string>::size_type i=0;i!=s.size ();i++)
{
y=s[i];//只是将s[i]的值赋给y
for(vector<string>::size_type j=0;j!=y.size();j++)
{
y[i]=toupper(y[i]); // 这句话只能把y中字符变成大写 并不能改变s[i]中的字符
//s[i][j] = toupper(s[i][j]); OK
}
}

for(vector<string>::size_type i=0;i!=s.size();i++)
{
cout<<s[i];
}
}
谁学逆向工程 2010-03-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 thefirstz 的回复:]
因为vector<string>保存的是字符串,所以先用s[i]取出字符串,再用s[i][j]取出一个个的字符
[/Quote]
俩下标就能取得字符 了?
昵称很不好取 2010-03-13
  • 打赏
  • 举报
回复
因为vector<string>保存的是字符串,所以先用s[i]取出字符串,再用s[i][j]取出一个个的字符
昵称很不好取 2010-03-13
  • 打赏
  • 举报
回复
s[i]指向vector<string>中的string,s[i][j]才指向该string中的一个个字符
加载更多回复(5)

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧