e5776.c

char*文字列を==で比較しては駄目

/* A:e5776: char*文字列が同一かどうかの比較には == では無く strcmp を使ってください */

修正前 if(p == "str") /* ← NG */ { puts("同じです"); } 修正後 if(!strcmp(p, "str")) { puts("同じです"); }
解説 char*文字列を==や!=で比較しても、ポインタの比較になり、 正しい結果は得られない。 (C++のstd::stringクラスやVC++のCStringクラスは==で比較できる)