求助一C++题目
题目是这样的: 编写一个函数,它接受一个指向string对象的引用作为参数,并将该对象的内容转换为大写,为此可以函数 toupper()来帮助转换,它通过一个循环让你能够用不同的输入来测试这个函数,该程序的运行如下:
Enter a string (q to quit) :go way
GO AWAY
Next string (q to quit): good grief!
GOOD GRIEF!
Next string (q to quit):q
bye.
这是c++ primer plus 5th上的习题.....网上下的答题很不完整,这题就是没有答案的...请问这题应该怎么做
以下是我写的代码
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
string & convert(string &s1);
int main()
{
cout<<"Enter a string (q to quit):";
string b;
getline(cin,b);
cin.clear();
while(b[0]!='q')
{
b=convert(b);
cout<<b<<endl;
cout<<"Finish !"<<endl;
cout<<"Enter a string (q to quit):";
getline(cin,b);
cin.clear();
}
cout<<"Bye!"<<endl;
return 0;
}
string & convert(string &s1)
{
int n=s1.size();
for(int i=0;i<n;i++)
{
s1[i]=toupper(s1[i]);
}
return s1;
}
运行总是有问题...输入一个连续的字符串没有问题,但是如果中间有空格的话就有问题了,请高手们帮忙解决,在这里先谢谢了
[[it] 本帖最后由 NEOGX 于 2008-8-21 17:30 编辑 [/it]]