2014-03-05 60 views
-1

我想将输入从大写更改为小写,例如。如果输入是R,它将变为r。我希望它与字符串不是字符。我试过这个从大写更改为小写C++

one=tolower(one); 
two=tolower(two); 

但它没有工作。

#include <cctype> 
#include <iostream> 
using namespace std; 

int main() { 
    string one; 
    string two; 
    cout << "\nPlayer One, please enter your move: ('p' for Paper, 'r' for Rock, '$ 
    cin >> one; 

    cout <<"\nPlayer Two, please enter your move: ('P' for Paper, 'R' for Rock, 'S'$ 
    cin >> two; 
+0

是的,我需要输入lowerc ase,以防万一,如果用户把大写 – user3378134

回答

0

你可以做到以下几点:

for(i = 0;i < one.size();i++) 
{ 
    if(one[i]>='A' && one[i]<='Z') 
    { 
     one[i] = one[i]-'A'+'a'; 
    } 
} 
+0

lab3.cpp:在函数âintmain()â: lab3.cpp:15:错误:未在此范围内声明 – user3378134

+0

您的错误不明确。 –

+0

他只是复制粘贴你的代码,并没有声明变量我。 – UmNyobe

0

试试这个:

#include <algorithm> 
#include <string> 
std::transform(one.begin(), one.end(), one.begin(), ::tolower); 
2

您可以使用std::transform和右std::tolower过载:

#include <cctype> // std::tolower 
#include <algorithm> // std::transform 

std::transform(one.begin(), one.end(), one.begin(), 
       [](char c) 
       { return std::tolower(static_cast<unsigned char>(c));});