まず第一に、確かに受け取ったコンパイラの警告をすべて無視したことを恥じてください。それらは、あなたが「ばかげたこと」をするのを防ぐのに役立ちます。
そして、なぜこのすべてのナンセンスなのですか?これは、コンパイラが伝えようとしている最初の「愚かなこと」です。
char *v= "a";
char *o='e'; // invalid - Initializing a pointer to a constant 'e' (101).
char * w='i'; // invalid
char *e='o'; // invalid
char *l='u'; // invalid
ポインタがどのように機能するか知っていますか? そうでない場合は、それらを読んで理解することをお勧めします。
最初の行は理にかなっています-文字列を作成し、char* v
その文字列を指しています。
しかし、それらの文字や変数にポインタを使用しても意味がありません。それらを直接比較するだけです:
char my_character;
if (my_character == 'a') {
// do something
}
また、文字の読み取りに関しては、意味をなさないときにポインターを使用しています。
char *u[1]; // why?
代わりに、単一のchar
変数を定義するだけです。では、 のドキュメントを参照してくださいscanf
。"%c"
「1文字だけ読みたい」という意味のフォーマット文字列を与える。次に、どこscanf
に置くかを指定する必要があります。これを行うには、格納する変数の「アドレス」を渡します。(当然のことですが) operatorのアドレスを&
使用してこれを行います。
char input_character;
scanf("%c", &input_character);
この情報があれば、作業を完了できるはずです。次に、switch ステートメントを調べることをお勧めします。
最後に、プログラマーとして真剣に受け止めてもらいたい場合は、一貫した書式設定 (インデント、スペース) を使用し、意味のある変数名を使用する必要があります。無意味な変数に対して「母音」を綴るのは「かわいい」かもしれませんが、まったくナンセンスです。
最も重要なことは、コードの動作を正確に理解していない限り、コードを 1 行も書かないことです。これを行う場合は、誰にも助けを求めないでください (特に StackOverflow は避けてください)。あなたのコードが何をしているのか (または少なくとも何をすべきだと思っているのか) を説明できないなら、あなたのプログラムは動作する資格がありません。