我有一个问题,一个字符串的所有小写字符应该被转换成大写字母。但是根据问题,代码中的某些行不应该被改变。我已经写下了下面的代码。如何将字符串的小写字符转换为C++中的大写字符?
#include <iostream>
#include <string>
#include <stdio.h>
#include <ctype.h>
using namespace std;
class StringOps {
public:
void stringToUpper(string &s) //This line should not be changed
{
char c;
int i=0;
while (s[i])
{
c=s[i];
putchar (toupper(c));
i++;
}
}
};
int main(void)
{
string str ="Hello World";
StringOps obj;
obj.stringToUpper(str);
cout << str; //This line should not be changed
return 0;
}
我得到的输出:
HELLO WORLDHello World
但所需的输出是:
HELLO WORLD HELLO WORLD
如何使主的
cout<<str;
声明()打印函数中计算的结果:
void stringToUpper(string &s)
恩,看起来你想要t o修改'stringToUpper'中的's',而不是只读取它。 – aschepler
你应该设法使'stringToUpper' _change_'s'来代替打印类似的东西。 –
谢谢!我现在明白了我的错误。 –