首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C 語言實現 strlen 的三種方法:指針運算、計數器與數組下標

     編輯:關於C++

方法一:指針差值法

保存起始指針,移動指針至結束符 '\0',兩指針相减得長度。

size_t my_strlen(const char* s) {
    const char* p = s;
    while (*p) ++p;
    return p - s;
}

方法二:計數器法

用整型變量累計字符數。

size_t my_strlen(const char* s) {
    size_t len = 0;
    while (*s++) ++len;
    return len;
}

方法三:數組下標法

利用數組名轉換為首地址,計算末尾地址與首地址之差。

size_t my_strlen(const char* s) {
    size_t len = 0;
    while (s[len]) ++len;
    return len;
}
// 或
size_t my_strlen(const char* s) {
    const char* end = s;
    while (*end) ++end;
    return end - s;
}

測試主函數

int main() {
    char str[] = "Hello, World!";
    printf("%zu\n", my_strlen(str));  // 13
    return 0;
}

對比與建議

  • 指針差值法最直觀體現 C 指針算術本質。
  • 計數器法適合需要同時處理字符的場景。
  • 標準庫 strlen 通常用汇編優化(如 SIMD 指令集),手寫版僅供教學。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved