下のコードを作成したのですが、あと1歩のところで詰まりました。出力結果は、
「・
・
・
単語~は-10750・・・文字目に見つかりました.」
となり、wordsearch関数内に問題があることはわかるのですが、見つけることができませんでした。
お力を貸してください。
C言語
1#include<stdio.h> 2 3/* --- *targetは文章、*keyは探している単語 --- */ 4int wordsearch(char *target,char *key){ 5 int i=0,j,x,y; 6 7 while(1){ 8 if(key[i]==0){ /* 配列keyの文字数を出す*/ 9 x=i+1; 10 break; 11 } 12 i++; 13 } 14 15 for(i=0;i<sizeof(target);i++){ 16 if(target[i]==key[0]){ /* 配列targetのi文字と配列keyの1文字目を照合 */ 17 for(j=1;j<x;j++){ /* 配列keyの文字数回繰り返す */ 18 if(target[j+i]!=key[j]){ /*配列keyの2文字目以降が一致しなかったら、最初に戻り、1文字目をまた照合する*/ 19 break; 20 } 21 else if(target[j+i]==key[j] && j==x-1){ /*配列keyが最後の文字まで通ったら、yにi+1を代入 */ 22 y=i+1; 23 break; 24 } 25 } 26 } 27 } 28 return y; 29 } 30 31int main(void){ 32 char mes[10000]={}; 33 char word[256]={}; 34 int n; 35 printf("文章を入力してください(最大 10000 文字):"); gets(mes); 36 printf("検索する単語を入力してください(最大255文字):"); gets(word); 37 n=wordsearch(mes,word); 38 printf("単語%sは%d文字目に見つかりました.\n",word,n); 39 40 return 0; 41} 42
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/20 16:54