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 (str[length] != '\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 函数的行为。

相关推荐
ghie909010 分钟前
Ubuntu编译ffmpeg解决错误:ERROR: avisynth/avisynth_c.h not found
c语言·ubuntu·ffmpeg
寰宇视讯16 分钟前
镓未来携手联想丨GaN黑科技赋能笔电,解锁“小体积高效率”快充新体验
大数据
创小匠1 小时前
创客匠人深度:创始人 IP 在小红书的内容策略与私域沉淀方法论
大数据·网络·tcp/ip
iCxhust1 小时前
PC16550 UART接收中断处理完整示例代码
c语言·开发语言·stm32·单片机·嵌入式硬件
阿里云大数据AI技术2 小时前
PAI推理重磅发布模型权重服务,大幅降低冷启动与扩容时长
大数据·人工智能·llm
斗转星移773 小时前
MFC中使用CRichEditCtrl控件让文本框中的内容部分加粗
c++·mfc·cricheditctrl·richedit2
景彡先生3 小时前
C++ 性能分析工具:Valgrind 与 perf
开发语言·c++
李子圆圆3 小时前
地下安全防线:电缆通道防外破地钉如何守护城市隐形生命线
大数据·人工智能
范纹杉想快点毕业4 小时前
解析Qt文件保存功能实现
java·开发语言·c++·算法·命令模式