文字列が絶対パスか相対パスかを調べるためにCで非常に簡単な関数を書いています。私が何を試しても、常にfalseを返す。cの文字列の最初の文字を確認する
int isAbsolute(char *str){
if(strcmp(str,"/")){
return 1;
}
return 0;
}
と私はそれが好きで呼び出します:ここで
は、私が試したものであるたびにfalseを返しているprintf("%d\n", isAbsolute("/"));
。私は明らかに何かを見逃していますが、私はそれを理解することができませんでした...
に行くされていない理由、それは 'strcmp'は、文字列全体を比較していますので、あなたが渡している文字列は「/」である場合にのみtrueを返します。 'strncmp'を見るか、文字列の代わりに1つの文字(' if(str [0] == '/') ')だけを比較することができます。 – AntonH
@AntonH:なぜこれを回答にしないのですか? – alk
@alk私はそれがなぜ機能していないのかコメントするつもりだったが、後で解決策を編集した。答えとして今置け... – AntonH