以下のコード内のstrcmpが、変な動作をしてしまい困っています。調べてたりしたのですが、どこが間違っているのか自分にはわかりませんでした。もしよろしければ、どの辺が間違っているのか教えていただけると嬉しいです。よろしくお願いいたします。
#include <stdio.h> #include <string.h> int main(void){ char ch[256]; int score[256], i; while(1){ printf("データ入力を続けますか(y/n)-> "); scanf("%s", ch); if( strcmp( ch , "n") ){ printf("終わります\n"); break; } else if(strcmp( ch , "y")){ printf("スコアを入れてください-> "); scanf("%d", &score[i]); i++; } } return 0; }
実行結果
データ入力を続けますか(y/n)-> n スコアを入れてください-> 10 データ入力を続けますか(y/n)-> n スコアを入れてください-> 4 データ入力を続けますか(y/n)-> y 終わります
> strcmpが、変な動作をしてしまい
変かどうかは主観です。
strcmp 自体の動作は正常であって、使い方・考え方を間違っているだけかもしれません。
strcmp がどのようなパラメータを指定した場合にどのような値を返すと「ご自身が考えているのか」を教えてください。
回答3件
あなたの回答
tips
プレビュー