C言語なら、俺に聞け! <16>
■ このスレッドは過去ログ倉庫に格納されています
0329デフォルトの名無しさん
NGNGchar* str_str(const char* base, const char* part)
{
int i;
unsigned long h1 = 0, h2 = 0;
size_t len1 = strlen(base), len2 = strlen(part);
char *p1 = base, *p2 = part, *l = base + len2, *end = base + len1;
if (len1 < len2)
return NULL;
for (i = 0; i < len2; i++) {
h1 += base[i];
h2 += part[i];
}
for (; h1 != h2 || strcmp(p1, p2); ++p1, ++l) {
if (l == end)
return NULL;
h1 -= *p1;
h1 += *l;
}
return p1;
}
■ このスレッドは過去ログ倉庫に格納されています