嘿,所以我对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;
}
运行此程序时,我正在获取数字。我该怎么解决?
答案 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;
}