#20
by あたっしゅ » 5年前
>何故 for 文を使わないといけないのかって質問でしたが、名前を探してくる[strstr]の関数を使っているのに、
>何故、for文で繰り返し処理を実行しなければいけないか、疑問でした。
>ですが皆さんのおかげで解決に向かいそうです。
やっと、質問者の意図が分かりました。
コード:
A: for (n = 0; n > NO; n++) {
B: if (strstr(seiseki[n].szName, name))
C: printf("%s 国語 %d点, 理科 %d点\n",
D: seiseki[n].szName, seiseki[n].kokugo, seiseki[n].rika);
E: }
B:行で strstr 関数を使ってますが、ここは、strcmp 関数を用いて
if(strcmp(seiseki[n].szName, name)==0) でないと駄目です。
http://hitorilife.com/strstr.php strstr 関数(ja)
アセンブラで書くと
コード:
db "A-ko", 0, 0, 0, 0, 0, 0,.. ;; 省略
dd 100, 0
db "B-ko", 0, 0, 0, 0, 0, 0,.. ;; 省略
dd 90, 10
db "C-ko", 0, 0, 0, 0, 0, 0,.. ;; 省略
dd 80, 20
db "D-ko", 0, 0, 0, 0, 0, 0,.. ;; 省略
dd 70, 30
db "E-ko", 0, 0, 0, 0, 0, 0,.. ;; 省略
dd 60, 40
となるので、strstr で一気に検索することはできません。
「一単位づつ strcmp で比較」を for で回す必要があります。
>何故 for 文を使わないといけないのかって質問でしたが、名前を探してくる[strstr]の関数を使っているのに、
>何故、for文で繰り返し処理を実行しなければいけないか、疑問でした。
>ですが皆さんのおかげで解決に向かいそうです。
やっと、質問者の意図が分かりました。
[code]
A: for (n = 0; n > NO; n++) {
B: if (strstr(seiseki[n].szName, name))
C: printf("%s 国語 %d点, 理科 %d点\n",
D: seiseki[n].szName, seiseki[n].kokugo, seiseki[n].rika);
E: }
[/code]
B:行で strstr 関数を使ってますが、ここは、strcmp 関数を用いて
if(strcmp(seiseki[n].szName, name)==0) でないと駄目です。
http://hitorilife.com/strstr.php strstr 関数(ja)
アセンブラで書くと
[code]
db "A-ko", 0, 0, 0, 0, 0, 0,.. ;; 省略
dd 100, 0
db "B-ko", 0, 0, 0, 0, 0, 0,.. ;; 省略
dd 90, 10
db "C-ko", 0, 0, 0, 0, 0, 0,.. ;; 省略
dd 80, 20
db "D-ko", 0, 0, 0, 0, 0, 0,.. ;; 省略
dd 70, 30
db "E-ko", 0, 0, 0, 0, 0, 0,.. ;; 省略
dd 60, 40
[/code]
となるので、strstr で一気に検索することはできません。
「一単位づつ strcmp で比較」を for で回す必要があります。