2013-05-12 31 views
0

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

什麼是實現這一目標的最佳途徑?

回答

3

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

你應該使用類似strcmp檢查,如果內容比賽:

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

謝謝我將這樣做;) – bodokaiser 2013-05-12 12:06:31

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;   

}