【问题标题】:How do I switch string arguments on main如何在 main 上切换字符串参数
【发布时间】:2013-05-06 14:30:38
【问题描述】:
我有一个 c 程序,它应该接受第一个参数并检查哪个函数匹配它。
例子:
./test.o blabla
代码:
main(int argc, const char* argv) {
switch (argv[1]) {
case "blabla":
do_omething(argv[2]); break;
}
return 0;
}
void do_something(const char* param) {
// ....
}
实现这一目标的最佳方法是什么?
【问题讨论】:
标签:
c
shell
arguments
command-line-arguments
main
【解决方案1】:
不确定您的要求是什么,但可能您可以执行以下操作
switch(*argv[1){
case 'b':
if (strcmp (argv[1], "blabla") == 0)
do_it_for_blabla();
break;
case 'c':
if( compare with wait ever )
do_what_ever();
break;
default:
//do nothing and break;
break;
}
【解决方案2】:
如果您在 C 字符串上 switch,那是它的 地址, 而不是它的内容。
你应该使用类似strcmp的东西来检查内容是否匹配:
if (strcmp (argv[1], "blabla") == 0)
do_something(argv[2]);