c++ - 字符串转大写字母函数

标签 c++

我正在处理一些练习,根据该练习,我必须将输入中给出的字符串更改为相同的字符串,并用大写字母书写。

这是我的尝试,出于某种奇怪的原因,它只打印出字符串的第一个单词,它没有读取空格之后的位... 任何想法如何解决它?

#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/

相关文章:

c++ - 如何以毫秒为单位获取UTC时间

C++ 重载提取运算符 - 错误无法访问类中声明的私有(private)成员

C++ 复制构造函数,赋值 'operator='

c++ - 特定 type_trait vector 的类特化

c++ - UML 设计模式和 C++ 类的实现

c++ - aws-sdk-cpp 异常处理已禁用,使用 -fexceptions 启用

c++ - 如何在运行时 C++ 中包含头文件和函数?

c++ - std::thread 类方法错误

c++ - 我在程序中对同一图像得到不同的结果

c++ - 使用 AJAX 从 HTML 页面到在同一服务器上运行的 C++ 应用程序的两种方式通信