Draft.cpp

2つの文字列を比較するときは、関数strcmp()を使用します。2つの文字列が等しい場合、0が返されます。

文字列を比較するときは、使用しないでください

if(A==b)

これは間違いを犯す可能性があります

たとえば、draft.cppを書くとき

int queen::Level()
{
    
    
  if( (18<=age && age<=25)            &&
      (165<=height && height<=178)    &&
      (sc=="火辣")                    &&
      (yz=="漂亮"))
   {
    
    printf("女王\n"); return 1;}

}

私が書いた額面と体型は、同一記号を使用してそれらが等しいかどうかを判断しますが、実際には、額面(yz)と体(sc)をこのように定義したため、これは間違っています。

char yz[31];
char sc[31];

yzとscにそれぞれ値を割り当てる場合

sc="火辣";
yz="漂亮";

ホットでプリティはこれら2つの変数の最初の4バイトを占め、残りのスペースは0です。したがって、2つの文字列が同じであるかどうかをID記号で判断するのは誤りです。

gdbデバッグで
ここに画像の説明を挿入
、scの値を出力するのは次のようになります。初期化がないため、ガベージ値が表示されます。

おすすめ

転載: blog.csdn.net/qq_43403759/article/details/113380050