C
標誌是否在 c 命令參數中被視為字元串?
說我有以下內容:
#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
.
簡短的回答,是的。
您最大的錯誤是您應該使用strcmp或strncmp正確比較 C 中的字元串。
**獎勵積分:**循環
argv[]
並使用printf
來顯示每個元素,以親自查看放置在哪裡。