C

標誌是否在 c 命令參數中被視為字元串?

  • February 8, 2016

說我有以下內容:

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]){
   if (argv[1] == "-s") {
       printf("success\n");
   }
   else{
       printf("failed\n");
   }

return 0;
}

在 shell 中,當我執行它列印的執行檔時failed..

那是因為您不能在 C 中進行字元串比較,==或者!=因為那些比較基地址而不是實際內容。要正確比較 C 中的字元串,您必須使用strcmp.

簡短的回答,是的。

您最大的錯誤是您應該使用strcmpstrncmp正確比較 C 中的字元串。

**獎勵積分:**循環argv[]並使用printf來顯示每個元素,以親自查看放置在哪裡。

引用自:https://unix.stackexchange.com/questions/260690