我不明白strncmp函數中下面的代碼究竟發生了什麼。爲什麼它(all+j*100)+i
?需要幫助瞭解什麼是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]
}
如果有人能詳細向我解釋for循環中發生了什麼,這將是非常好的。
我有這種感覺,你應該去問實施'PatternSearch'的人。這就是說,他的評論很清楚。 –
這是一個混淆的方式,讓函數在循環中使用'char(* all)[100]'並使用all [j] [i]' –