ライブラリ関数について教えてください
C言語を独学で勉強しています。
ファイルの中のデータと配列データが一致するかを調べるプログラムを作ろうとしています。
しかし、私が作っているプログラムでは表示結果が正しくありません。
char型では==を使って一致かどうかを調べることが出来ないので、ライブラリ関数を使う必要があることを知ったのですが、調べてもよくわかりませんでした・・・
どのように作ればいいのか詳しく教えていただけないでしょうか。
よろしくお願いします。
#include<stdio.h>
struct test {
char no[5];
char name[10];
char english[5];
char math[5];
};
int main(void){
FILE *fp;
int i;
char f_no[5], f_name[5];
struct test data[5] = {
{"001","akemi","100","40"},
{"002","tadao","59","76"},
{"003","mika","94","69"},
{"004","hiroshi","54","98"},
{"005","kazu","39","57"}
};
struct test *test_p;
test_p = data;
if ((fp = fopen("test.txt", "r")) == NULL) {
printf("NOT OPEN FILE\n");
}
else {
while (fscanf(fp, "%s%s", f_no, f_name) == 2) {
for(i = 0; i<=5; i++) {
if((test_p->no == f_no) && (test_p->name == f_name)) {
printf("%s %s 英語%s 数学%sです。\n", f_no, f_name, test_p->english, test_p->math);
}
else {
printf("%s %s 一致しません\n", f_no, f_name);
break;
}
++test_p;
}
}
}
fclose(fp);
}
補足
ご回答ありがとうございます。 必須ではないのは、承知しております。 使う前に、定義されていれば、不要でしょうか? そうでなければ、プロトタイプ(?)宣言が必要? 実際に自分でコーディングしてコンパイルして実行しましたが、 概ね書いてある通りに動きました。