【问题标题】:C- Checking if the first character in the first comand line arguement contains a particular charC-检查第一个命令行参数中的第一个字符是否包含特定字符
【发布时间】:2014-02-24 02:52:47
【问题描述】:

如果第一个参数的第一个字符 == "-" 则输入 if 语句。我得到的错误是“传递'strcmp'的参数1使指针从整数而不进行强制转换”我也用fgetc试过这个,写得有点不同,但仍然得到这个错误。如果我施放它,我会得到一个核心转储。 如果参数包含破折号,它将在同一参数中后跟数字,因此我不能只将 argv[1] 视为单个字符,如果可以的话,条件将很简单: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;}

感谢您的帮助

【问题讨论】:

  • 如果你在*nix(包括Linux和Mac OS X)系统上,你不妨使用getopt(3)

标签: c pointers casting strcmp fgetc


【解决方案1】:

strcmp()是比较字符串,也就是以null结尾的char数组。但是在这里你比较两个char,这样就可以了:

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

注意'-' 中的单引号,这是char 文字。

【讨论】:

  • 哦,当然,谢谢。一旦时间允许,我会选择你的答案作为接受的答案。
猜你喜欢
  • 1970-01-01
  • 2015-09-04
  • 2015-09-28
  • 2012-10-14
  • 2012-12-19
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
相关资源
最近更新 更多