全部转换为大写

时间:2019-12-13 01:07:54

标签: c++

嘿,所以我对c ++还是陌生的,它试图将用户输入的单词全部转换为大写字母

#include<iostream>
#include<cstring>


using namespace std;
int main()
{
  int size=10;
  int i =0;
  char arr[size];
  cout<<"Enter a word"<<endl;
  cin.get(arr,size);

  for(i = 0; i < 10; i++)
  {
    if(islower(arr[i]))
    {
      cout<<toupper(arr[i])<<endl;
    }
  }
  return 0;
}

运行此程序时,我正在获取数字。我该怎么解决?

2 个答案:

答案 0 :(得分:6)

不要编写类似C的C ++,请使用标准库以发挥自己的优势。使用std::string并执行以下操作:

#include <iostream>
#include <algorithm> 
#include <string>  

int main() {
    std::string input;
    std::cin >> input;
    std::transform(input.begin(), input.end(), input.begin(), ::toupper);
    std::cout << input << std::endl;
    return 0;
}

或者使用lambda:

std::transform(input.begin(), input.end(), input.begin(), [](unsigned char c){ return std::toupper(c); });

答案 1 :(得分:0)

现在是学习按位应用程序之一的时候了

#include <iostream>
#include <string>

int main()
{
    int mask = 0xDF;
    std::string str = "aBcdeqDsi";

    for(int i(0); i < str.size(); ++i)
        std::cout << static_cast<char>(str[i] & mask);

    std::cout << std::endl;

    return 0;
}