指针的第一个字符

时间:2016-08-14 01:40:58

标签: c pointers char

我对char指针有疑问。

我正在使用fgets在C中读取文件。这是一个简短的概述,因此您可以了解我想要做的事情:

char configline[configmax_len + 1]; //configmax_len is the max value I need
while(fgets(configline, sizeof(configline), config){ //config is the file
    char *configvalue = strtok(configline, " ");
    if (configvalue[0] == "#"){
        continue;
    }
    …
}

char * configvalue是指向当前正在读取的行的指针。我想检查的是该行的第一个字符是否为“#”。

但是,当我执行if语句:if (configvalue[0] == "#")时,编译器会抛出错误:comparison between pointer and integer

如何检查指针所指向的字符串的第一个字符是否为某个值?

1 个答案:

答案 0 :(得分:1)

Strtok返回指向nul终止字符串的指针,但您使用==将其与字符串常量进行比较:

if (configvalue[0] == "#")

首先,configvalue是一个指针,所以你可以这样做:

if (*configvalue == '#')

取消引用指针并获取输出字符串中的第一个字符。