我正在构建一个接受输入的程序,然后检测它是否输入了特定的东西。 输入行后,应将其转换为小写。但是,我无法弄清楚如何。 我试过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;
}
帮助将受到高度赞赏!
答案 0 :(得分:1)
tolower
适用于单个字符。请注意,该文档还指出非alpha字符是通过未修改的方式传递的。
这也是使用std::transform
的好位置。
如果查看std::transform
的示例,可以使用std :: toupper转换字符串。尝试根据您的需求调整该示例。