我正在处理一些练习,根据该练习,我必须将输入中给出的字符串更改为相同的字符串,并用大写字母书写。
这是我的尝试,出于某种奇怪的原因,它只打印出字符串的第一个单词,它没有读取空格之后的位... 任何想法如何解决它?
#include <iostream>
#include <string>
using namespace std;
void uppercase(string str)
{
locale loc;
for(size_t i=0; i<str.length(); ++i)
{
cout << toupper(str[i], loc);
}
}
int main(void)
{
string text;
cout << "Input text, please: " << endl;
cin >> text;
uppercase(text);
}
我知道可能有不同的方法来解决这个练习,但我想坚持我的方法。任何潜在的错误?
最佳答案
当然,使用 std::getline
来获取整行而不是一个单词。实际上,您应该几乎总是使用它,因为面向行是大多数程序接受输入的方式。
关于c++ - 字符串转大写字母函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25742379/