如何在main上切换字符串参数

时间:2013-05-12 11:58:37

标签: c shell arguments command-line-arguments main

我有一个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) {
    // ....
}

实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

如果你在C字符串上switch,那就是它的地址,而不是它的内容。

您应该使用strcmp之类的内容来检查内容是否匹配:

if (strcmp (argv[1], "blabla") == 0)
    do_something(argv[2]);

答案 1 :(得分:0)

不确定您的要求是什么,但可能您可以执行以下操作

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;        

}