C-检查第一个命令行争论中的第一个字符是否包含特定字符

JRX*_*JRX 2 c pointers casting strcmp fgetc

如果第一个参数的第一个字符==" - ",则输入if语句.我得到的错误是"传递'strcmp'的参数1使得整数指针没有强制转换"我也用fgetc尝试了这个,写得有点不同,但仍然得到这个错误.如果我施展它,我得到一个核心转储.如果参数包含一个破折号,那么在同一个参数中会跟着数字,所以我不能只将argv [1]看作一个char,如果我可以这么简单:if (strcmp(argv[1], "-")==0)

功能

int main (int argc, const char *argv[]){
    const char *test = argv[1];
    if (strcmp(test[0],"-")==0)
        {
          printf("saw there was a dash");
        }
    return 0;}
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助

Yu *_*Hao 6

strcmp()是比较字符串,即空终止char数组.但在这里你比较两个char,这将做:

if (test[0] == '-')
Run Code Online (Sandbox Code Playgroud)

注意单引号'-',这是一个char文字.