c言語で辞書のような機能をつくりたいです。以下のtxtから入力したものを探して表示したいのですが、自分が作成したプログラムではbearと入力すると
bear 熊
と表示されてしまいます。これをbearと打ったら
熊
と表示されるようにしたいのですがどうすればいいでしょうか・・・。空白にどのように対応していいかわからず困っています。ご教授いただけますと幸いです。
c
1#include <stdio.h> 2#include<stdlib.h> 3#include<string.h> 4 5 6int main(){ 7 8 char data[256]; 9 FILE *fp; 10 char buf[256]; 11 int i; 12 13 scanf("%s",&buf); 14 15if(NULL == (fp = fopen("dic.txt","r"))){ 16 printf("file open error.\n"); 17 exit(1); 18 } 19 20 fgets(data,sizeof(data),fp); 21 22 for(i=0;i<sizeof(data);i++){ 23 if(strncmp(buf,&data[i],strlen(buf))== 0){ 24 fputs(&data[i],stdout); 25 break; 26 } else if(i == sizeof(data)-1){ 27 printf("未登録です"); 28 } 29 } 30 31 32 fclose(fp); 33 return 0; 34} 35
txt
1alligator 鰐 2bear 熊 3camel ラクダ 4cat 猫 5caterpilar 毛虫
質問に書いてあるコードが実際に実行しているコードと違うようです。
間違えずにコピペしましょう。
上記をコンパイルすると、コンパイルエラーになります。
せめて、コンパイルエラーにならないソースを提示していただけませんでしょうか。
質問は、再度、編集可能です。
main関数を含めて、全てのソースを提示してください。
質問に書いてあるコードが実際に実行しているコードと違うようです。
間違えずにコピペしましょう。
質問のコードでは fgets を 1回しか実行しませんから、
「alligator 鰐」の 1行しか読み込みません。したがって、
「自分が作成したプログラムではbearと入力すると
bear 熊
と表示されてしまいます。」
ということはあり得ません。

回答4件
あなたの回答
tips
プレビュー