をどのように機能するかはstrcmp()関数の中で:||または&&それは私がCで新たなんだと私はこれを行うことができます場合、私は思っていたこんにちは
if (strcmp(sexo,sexom)!= 0) && (strcmp(sexo,sexof) != 0)
printf("Sexo Invalido");
私はこの間違ったをやっているかどうかを知りたいと思ったし、もしそうなら、どうすればいいのですか?
をどのように機能するかはstrcmp()関数の中で:||または&&それは私がCで新たなんだと私はこれを行うことができます場合、私は思っていたこんにちは
if (strcmp(sexo,sexom)!= 0) && (strcmp(sexo,sexof) != 0)
printf("Sexo Invalido");
私はこの間違ったをやっているかどうかを知りたいと思ったし、もしそうなら、どうすればいいのですか?
構文が無効です。
if (strcmp(sexo,sexom)!= 0) && (strcmp(sexo,sexof) != 0)
printf("Sexo Invalido");
その代わり
if ((strcmp(sexo,sexom)!= 0) && (strcmp(sexo,sexof) != 0))
printf("Sexo Invalido");
又は
if (strcmp(sexo,sexom)!= 0 && strcmp(sexo,sexof) != 0)
printf("Sexo Invalido");
strcmp
を書き込むために正確であろう整数値を返します。入力文字列が等しい場合は0、そうでない場合は0以外
そうです、strcmp
コールの結果は&&
または||
演算子のオペランドを指定できます
if (strcmp(sexo, sexom) && strcmp(sexo, sexof))
printf("Sexo Invalido\n");
ちょうどあなたの括弧が一致してください。 a
が0である場合、その式a && b
の結果が0に関係なくb
の値なので、b
はできません -
は&&
力が評価から右に左に、そしてそれ短絡ということを覚えておいてくださいまったく評価されない。
すでに他の人に指摘されているように、構文エラーが少しあります。つまり、論理式全体で(...)
のセットがありません。
さらに、コードは問題ありません。それは言う:
If sexo is neither sexom nor sexof then print "Invalid".
のような小さなプログラムでテストするのは簡単です:印刷します
#include<stdio.h>
#include<string.h>
int main()
{
char* sexom = "Male";
char* sexof = "Female";
char sexo[10];
strcpy(sexo, "Male");
if ((strcmp(sexo,sexom)!= 0) && (strcmp(sexo,sexof) != 0))
printf("Sexo Invalido %s\n", sexo);
strcpy(sexo, "Female");
if ((strcmp(sexo,sexom)!= 0) && (strcmp(sexo,sexof) != 0))
printf("Sexo Invalido %s\n", sexo);
strcpy(sexo, "Child");
if ((strcmp(sexo,sexom)!= 0) && (strcmp(sexo,sexof) != 0))
printf("Sexo Invalido %s\n", sexo);
return 0;
}
:
Sexo Invalido Child
をあなたがしようとしたときに何が起こりましたか? –
あなたはそれらを "** strcmp"関数で使用しません。あなたのC本は論理演算子について何を教えていますか?それ以外に何が見つかりましたか?あなたの**具体的な**問題は何ですか?私たちは個人指導のサービスはありません。 – Olaf
これらのカッコを使用すると、コンパイルしないでください。 –