0

最初の引数を取り、それに一致する関数をチェックする ac プログラムがあります。

例:

./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) {
    // ....
}

これを達成するための最良の方法は何ですか?

4

2 に答える 2

3

switchC文字列の場合、それはその内容ではなくアドレスです。

コンテンツが一致strcmpするかどうかを確認するには、次のようなものを使用する必要があります。

if (strcmp (argv[1], "blabla") == 0)
    do_something(argv[2]);
于 2013-05-12T12:04:12.020 に答える
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;        

}
于 2013-05-12T14:02:38.417 に答える