題目要求實現 string_in(s1, s2) 返回 s2 在 s1 中首次出現地址。
char* string_in(char* s1, char* s2) {
if (!*s2) return s1; // 空串視為匹配開頭
for (int i = 0; s1[i]; i++) {
if (s1[i] == s2[0]) {
int j;
for (j = 1; s2[j] && s1[i+j] == s2[j]; j++);
if (!s2[j]) return &s1[i]; // 完全匹配
}
}
return NULL;
}
外層遍歷 s1 起始位,內層匹配 s2 全長,匹配成功返回地址。避免手動計算長度、複雜指針算術。
生產代碼直接用 strstr。