2017-02-16 9 views
-1

は、私は私のC-サーバー
STATEMENT
IF実装しようとしています。IF文。変数

read(client_fd,received_data,100); 
printf("%s",received_data); 

私は、受信したデータは "テスト"

if (received_data == "test") { 
printf('ooo'); 
} 

に等しい場合、 "OOO" を印刷したいですか?

上記の例ではエラーが発生します。私はあまりC.

を知らない

を(コンパイルすることはできません)

UPDATE:

私は罰金コンパイルすることができます(を "OOO" 'OOO'を変更した後)
しかし、私はそれに "テスト"を送信していますが、if文は何もしていないと思います。

+0

複数の問題.. Cの文字列は二重引用符で囲む必要があります。文字は一重引用符で囲む必要があります。 '=='を使って文字列を比較することはできません。 'strcmp()' – Haris

+0

"はエラーになります" - エラーメッセージには何が表示されますか? – Quentin

+0

@Haris、二重引用符で固定コンパイルエラーを使用しています。私はそれに "** test **"を送ったが、声明が出されていないと思う。私は "** == **"の代わりに "** = **"を試しました。コンパイルエラーです。 – Joey

答えて

1

const char *の場合、==は機能しません。 代わりにstrcmpを使用してください。

+0

どうやって使用しますか? ** if(received_data strcmp "test")**? – Joey

+0

答えはちょっと誤解を招きます。 '=='は 'const char *'のために働きますが、OPの考え方ではありません。 – HolyBlackCat

+0

@HolyBlackCat私はそのコメントを得ません –