你如何使字符串小写(简单的方法)? (C ++)

时间:2017-11-06 02:13:31

标签: c++ string lowercase

我正在构建一个接受输入的程序,然后检测它是否输入了特定的东西。 输入行后,将其转换为小写。但是,我无法弄清楚如何。 我试过tolower(),但我无法弄清楚要放在括号中的内容。这是代码:

#include <string>
#include <sstream>
#include <iostream>
#include "stdafx.h"
using namespace std;
int main()
{
    while (1)
    {
        string dir = "C:/";
        string line;
        string afterPrint;
        string prompt = "| " + dir + " |> ";
        cout << prompt;
        cin >> line;

        stringstream ss(line);
        while (ss)
        {
            string command;
            ss >> command;
            command = ;// Command, but lowercase
            if (command == "cd")
            {
                string dir;
                if (ss >> dir)
                {
                    cout << "changedir: " << dir << "\n";
                    string prompt = "| " + dir + " |> ";
                }
            }
            else if (command == "c:" || command == "c:\\" || command == "c:/")
            {
                cout << "Directory: " << dir << "\n";
            }
            else
            {
                cout << "error\n";
            }
            break;
        }
    }
    return 0;
}

帮助将受到高度赞赏!

1 个答案:

答案 0 :(得分:1)

tolower适用于单个字符。请注意,该文档还指出非alpha字符是通过未修改的方式传递的。

这也是使用std::transform的好位置。

如果查看std::transform的示例,可以使用std :: toupper转换字符串。尝试根据您的需求调整该示例。