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

时间:2014-02-24 02:52:47

标签: 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;}

感谢您的帮助

1 个答案:

答案 0 :(得分:6)

strcmp()用于比较字符串,即空终止char数组。但是在这里你要比较两个char,这样做:

if (test[0] == '-')

请注意'-'中的单引号,即char字面值。