2016-05-04 2 views
0

==演算子を使用すると、文字を比較するといくつかの問題が発生する可能性があると私は聞き続けます。memcmpとVs. == c(埋め込み)および予期しないエラー

私の質問はどのような問題ですか?あなたは2つの別々のアイデアをぼやけてきた

if (Text[0] == 'A') { ; } 

if (!memcmp(Text, "A", 1)) { ; } 
+3

いいえ、違いはありません。あなたの質問はかなり漠然としていますが、どこから聞いていますか? –

+2

これは組み込みシステムには実際には関係しませんが、この場合のCプラットフォームと同じように動作します。 – Lundin

答えて

7

例えば、使用しての間に違いがあります。それはちょうどあなたが欲しいものをやる

if (Text[0] == 'A') 

と間違って何もない

あなたはおそらく聞いて、何を行うことはできませんが、事実上、常にTextは、「A」が含まれている場合でも、偽出てくる

if (Text == "A") 

です。

あなたは文字列を比較したい場合は、一般的にstrcmpを使用します。もちろん

if(strcmp(Text, "A") == 0) 

これだけ適切に形成され、ヌルで終わる文字列を上で動作します。最後に

、あなたが本当にしたい場合は、確かに

if (!memcmp(Text, "A", 1)) 

を行うことができますが、それはあなたに何かを購入しない奇妙な、潜在的に非効率的な使用方法、です。

+0

Steveに感謝します。 – elti

関連する問題