strncmp関数の以下のコードで正確に何が起こっているのか分かりません。なぜそれが(all+j*100)+i
ですか?誰かがforループで何が起こっているかを詳細に私に説明してくださいすることができればforループ内のstrncmp関数が何をしているのか理解する助けが必要です
/* Search jth string in char all[][100] for *pat*/
int PatternSearch(int j, char *all, char *pat)
{
int i;
for (i=0; i < strlen(all+j*100); i++)
{
if (strncmp(pat, ((all+j*100)+i), strlen(pat)) == 0)
{
return(i); // *pat found at ith byte of all[j]
}
}
return(-1); // *pat not found in all[j]
}
それは素晴らしいことです。
私は、あなたが 'PatternSearch'を実装した人に尋ねるべきであるというこの感覚を持っています。しかし、彼のコメントはかなり明確です。 –
ループ内で関数に 'char(* all)[100]'をとり、 'all [j] [i]'を使うのは難しい方法です。 –