我对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
。
如何检查指针所指向的字符串的第一个字符是否为某个值?
答案 0 :(得分:1)
Strtok返回指向nul终止字符串的指针,但您使用==
将其与字符串常量进行比较:
if (configvalue[0] == "#")
首先,configvalue
是一个指针,所以你可以这样做:
if (*configvalue == '#')
取消引用指针并获取输出字符串中的第一个字符。