我有一个显示ascii值和字母的程序,但现在我修改程序只显示我要查找的西班牙语字符。该程序被调用,是的,你得到它,“ascii”。用户要做的是键入C:>ascii
或C:>ascii all
以显示所有ascii字符。要仅显示西班牙语字符,用户必须键入C:>ascii es
。
为此,我写了这个简单的程序
int main(int argc, char** argv) {
if(argv[0] == "es"){
abc::ascii_es();
}
if(argv[0] == "all"){
abc::ascii_all();
}
else
abc::ascii_es();
return 0;
}
但程序总是跳转到else条件关键字中的ascii_es
方法。
我做错了什么?
答案 0 :(得分:5)
std::string
或使用strcmp(...) == 0
。argv[0]
是您的计划的名称。使用argv[1]
作为第一个参数。argv[1]
将导致未定义的行为。#include <string>
int main(int argc, char** argv) {
if (argc < 2)
abc::ascii_es();
else if (argv[1] == std::string("es"))
abc::ascii_es();
else if (argv[1] == std::string("all"))
abc::ascii_all();
else
abc::ascii_es();
return 0;
}