【问题标题】: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]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多