当前位置: 首页 > news >正文

C++ 获取 const char* 字符串长度

C++ 获取 const char* 字符串长度

获取字符串长度的方法有哪些。

strlen

strlen.c
源码如下

size_t
strlen(const char *str)
{const char *s;for (s = str; *s; ++s);return (s - str);
}

举个例子

1 2 3 4 5 6
a v b d f \0

初始化语句:s = str(只在循环开始时执行一次)
条件判断:*s(如果*s不为\0,为true
循环体:空语句;
迭代语句:++s(每次循环体执行完后执行,指针后移)
最后计算出字符串长度为5;

模板

#define HA "HA"

HA宏变量的值为字符串常量的引用,为const char(&)[3] .
所以写出如下模板函数

template <size_t N>
size_t getCharLength(const char(&arr)[N]) {std::cout << "字符串内容: " << arr << ", 字符串长度: " << N << std::endl;return N;
}

案例

#include "learn001.hpp"
#include <type_traits>template <size_t N>
size_t getCharLength(const char(&arr)[N]) {std::cout << "字符串内容: " << arr << ", 字符串长度: " << N << std::endl;return N;
}int main() {std::cout << getCharLength("Hello World!") << "\n"; const char (&str1)[6] = "Hello";const char (&str2)[6] = "Hello";const char str3[6] = "Hello";const char* str4 = new char[6]{'H','e','l','l','o','\0'};std::cout << sizeof(str1) << ", p: " << &str1 << "\n";std::cout << sizeof(str2) << ", p: " << &str2 << "\n";std::cout << sizeof(str3) << ", p: " << &str3 << "\n";std::cout << sizeof(str4) << ", p: " << reinterpret_cast<const void*>(str4) << "\n";printf("p: %p\n", str4);return 0;
}

TODO elf文件格式解析

http://www.jsqmd.com/news/24020/

相关文章:

  • 20251027——读后感2
  • window[-INPUT-] 还有哪些属性或方法
  • DeepSeek-DSA讲解
  • 【转载】‘tensorrt.tensorrt.Builder‘ object has no attribute ‘build_cuda_engine‘
  • paste
  • C#/.NET/.NET Core技术前沿周刊 | 第 59 期(2025年10.20-10.26)
  • Python write to file and read from file
  • Experiment3
  • 20232403 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • CF995F Cowmpany Cowmpensation
  • 背诵
  • 关系运算符逻辑运算符
  • WPF datagrid mvvm loaded 100M items,prism.wpf,prism.dryioc
  • 20232406 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 20232424 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • MLA原理讲解
  • LLM什么时候才能输出固定格式
  • MCP和Function Calling的区别
  • 《程序员修炼之道》 阅读笔记三
  • sg.绑定键盘事件
  • FastAPI 架构指南:用这份模版打造可扩展又安全的系统(附实战经验)
  • CF708E Students Camp 题解
  • 每日反思(2025_10_27)
  • 20251027
  • window[-TEXT-] 有哪些属性和方法?
  • HT-083 CSP J/S题解
  • 壁纸收集
  • 洛谷 P6965 [NEERC 2016] Binary Code /「雅礼集训 2017 Day4」编码 【经验值记录】(2-SAT 学习笔记)
  • CentOS7安装Miniconda
  • 我在博客修文物