私は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
をスローします。
ポインタが指す文字列の最初の文字が特定の値であるかどうかを確認するにはどうすればよいですか?
は= 'はstrcmp()'ではなく '=='(そう 'の場合(strcmpの(のConfigValue、 "#")とCでの文字列を比較コンパイルする必要があり
を使用してみてください= 0) 'が正しいかもしれません。そして、 "#"は文字列です。 ''# ''文字を比較したい場合は、二重引用符ではなく、一重引用符を使用してください( 'if(configvalue [0] == '#')')。 –
ジョナサン、最後の発言は、単一引用符で助けてくれました – Dezzy