標準庫 `strstr` 尋找子字串首次出現位置。本文實作簡易版 `myStrstr`,展示雙指標比對邏輯。
#include
#include
char *myStrstr(char *str1, char *str2) {
if (!*str2) return str1; /* 空子串 */
for (char *p1 = str1; *p1; p1++) {
char *p1b = p1, *p2 = str2;
while (*p1b && *p2 && *p1b == *p2) {
p1b++; p2++;
}
if (!*p2) return p1; /* 完整匹配 */
}
return NULL; /* 未找到 */
}
int main() {
char *s1 = "hello worl world ld";
char *s2 = " world ";
puts(myStrstr(s1, s2)); /* 輸出找到位置起始的字串 */
return 0;
}