代码之家  ›  专栏  ›  技术社区  ›  CodySig

检查c中字符串的第一个字母

  •  2
  • CodySig  · 技术社区  · 8 年前

    int isAbsolute(char *str){
        if(strcmp(str,"/")){
            return 1;
        }
        return 0;
    }
    

    我这样称呼它:

    printf("%d\n", isAbsolute("/"));
    

    5 回复  |  直到 8 年前
        1
  •  6
  •   Billy Ferguson    8 年前

    我没有权限访问编译器,但我认为这会起作用,因为C样式字符串只是带有终止字符的数组:

    int isAbsolute(const char *str){
        return (str[0] == '/');
    }
    
        2
  •  3
  •   pat    8 年前

    正如所指出的那样, strcmp 仅当要比较的字符串长度相同时才匹配。

    int isAbsolute(const char *str) {
      return (str[0] == '/');
    }
    

    this 可能会有帮助。我更喜欢傅的答案,而不是被接受的答案(大多数选民也是如此)。

        3
  •  2
  •   AntonH    8 年前

    strcmp true

    您可以查看strncmp:

    if(strncmp(str,"/", 1)) ...
    

    或者只比较一个字符:

    (if (str[0] == '/')) ...
    
        4
  •  1
  •   Henno Brandsma    8 年前

    类似于 strncmp memcmp

    int isAbsolute(const char *str){
        if (0 == memcmp(str, "/", 1){
             return 1;
        } else {
             return 0;
        }
    }
    

    不要忘记返回值$0$意味着平等。在代码中,在这种情况下返回0,这可能不是您想要的。

        5
  •  0
  •   rohit    8 年前

    在成功案例中,Strcmp返回值为零,这就是为什么它不会成为真的