0

ユーザー入力を要求するコードがあります。これは「文字列」型で、非常に単純なプロセスです。ユーザー入力を tolower() 関数を使用して変換したいのです。想定どおりに動作しますが、同じ変数に割り当てることができないようです。何か助けてください。

#include <locale>
#include <string>
#include <iostream>
//maybe some other headers, but headers aren't the problem, so I am not going to list them all

while (nCommand == 0)
        {  
            locale loc;
            string sCommand;
            cin >> sCommand;

            for (int i = 0; i < sCommand.length(); ++i)
            {
            sCommand = tolower(sCommand[i],loc);
            cout << sCommand;
            }

たとえば、ユーザーが Help sCommand に入力した場合、h になります。

ユーザーがHELP、Help、またはHeLpと入力した場合のように見せたい方法

sCommand はどちらの方法でも「ヘルプ」にする必要があります

4

2 に答える 2

1

本当にやりたいことが、その位置に格納されている文字を小文字バージョンに割り当てることである場合、文字列を文字に割り当てています。

したがって、これを変更します。

sCommand = tolower(sCommand[i], loc);

これに:

sCommand[i] = tolower(sCommand[i], loc);
//      ^^^
于 2014-05-29T18:16:16.843 に答える