C++实现手写strlen函数

要实现求字符串长度的函数,核心思路是通过指针或索引遍历字符串,直到遇到字符串结束标志 \0 。以下是两种常见的实现方式:

指针遍历版本

#include <iostream>

using namespace std;

// 指针方式实现strlen

size_t myStrlen(const char* str) {

if (str == nullptr) {

return 0; // 处理空指针情况

}

const char* ptr = str;

while (*ptr != '\0') {

ptr++;

}

return ptr - str;

}

int main() {

char str\[\] = "Hello, World!";

cout << "字符串长度: " << myStrlen(str) << endl;

return 0;

}

索引遍历版本

#include <iostream>

using namespace std;

// 索引方式实现strlen

size_t myStrlen(const char* str) {

if (str == nullptr) {

return 0; // 空指针保护

}

size_t length = 0;

while (strlength != '\0') {

length++;

}

return length;

}

int main() {

char str\[\] = "C++ Programming";

cout << "字符串长度: " << myStrlen(str) << endl;

return 0;

}

实现说明

  • 核心逻辑:两种实现都通过遍历字符数组,直到遇到 \0 结束标志

  • 空指针处理:添加了对 nullptr 的判断,避免程序崩溃

  • 返回类型:使用 size_t 类型确保非负整数返回

  • 常量指针:参数使用 const char* 防止函数内部修改原字符串

这两种实现方式的时间复杂度都是O(n),其中n是字符串的实际长度,空间复杂度为O(1),符合C++标准库中 strlen 函数的行为。

相关推荐
Jerry.张蒙15 小时前
AI工具Opencode助力SAP提质增效实践
大数据·运维·服务器·人工智能·运维开发
凡人叶枫1 天前
Effective C++ 条款30:透彻了解 inlining 的里里外外
linux·开发语言·c++·嵌入式开发·effective c++
noipp1 天前
推荐题目:洛谷 P10907 [蓝桥杯 2024 国 B] 蚂蚁开会
c语言·c++·算法·编程·洛谷
Data-Miner1 天前
集团数字化转型大数据平台整体建设方案
大数据
guslegend1 天前
大模型驱动大数据SRE智能运维
大数据·运维
学逆向的1 天前
C++纯虚函数
开发语言·c++·网络安全
凡人叶枫1 天前
Effective C++ 条款22:将成员变量声明为 private
linux·开发语言·c++
跨境小彭1 天前
2026 Temu 合规新玩法,凌风 ERP 优化 POD 运营效率
大数据·跨境电商·temu·shein
weixin_397574091 天前
从“点状试点“到“全面智能化“:制造企业AI落地的现实路径
大数据·人工智能·制造
志栋智能1 天前
超自动化巡检:知识沉淀与团队协作的新载体
大数据·运维·网络·数据库·人工智能·自动化