首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 字符串查找子串指針實現:標準庫 strstr 或手寫雙層循環

     編輯:程式設計綜合問答

題目要求實現 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。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved