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

news/2025/10/27 22:35:24/文章来源:https://www.cnblogs.com/zshsboke/p/19170340

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.mzph.cn/news/948147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20251027——读后感2

面对多变的需求,可先做可丢弃的原型。比如要开发一个新的电商APP,先快速做个包含核心功能的简易原型,让用户试用后反馈,再基于此开发正式系统,避免在错误需求上浪费时间,就像盖房子先搭个简易框架看结构是否合理…

window[-INPUT-] 还有哪些属性或方法

在PySimpleGUI中,除了.update()方法外,window["-INPUT-"]等元素对象还支持以下属性和方法,按功能分类整理如下: 核心方法.get()功能:获取元素的当前值(如输入框内容、下拉菜单选中项等)。 示例:inpu…

DeepSeek-DSA讲解

1. MQA: Multi-Query Attention 多查询注意力机制 (MQA) 是 Transformer 中使用的传统多头自注意力机制(MHA)的一种变体。在传统的多头注意力机制中,每个注意力头都使用自己的一组查询、键和值,这可能需要大量计算,…

【转载】‘tensorrt.tensorrt.Builder‘ object has no attribute ‘build_cuda_engine‘

【转载】‘tensorrt.tensorrt.Builder‘ object has no attribute ‘build_cuda_engine‘问题简述: AttributeError: tensorrt.tensorrt.Builder object has no attribute build_cuda_engine 原因: tensorrt版本大于…

C#/.NET/.NET Core技术前沿周刊 | 第 59 期(2025年10.20-10.26)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与…

Python write to file and read from file

import uuid import datetime import timedef get_uuid_time():return (f"{uuid.uuid4().hex}_____{datetime.datetime.now().strftime("%Y%m%d%H%M%S%f")}")def get_time():return (f"{date…

Experiment3

Task1 #include <stdio.h> char score_to_grade(int score); // 函数声明 int main() {int score;char grade;while(scanf("%d", &score) != EOF) {grade = score_to_grade(score); // 函数调用pr…

20232403 2025-2026-1 《网络与系统攻防技术》实验三实验报告

20232403 2025-2026-1 《网络与系统攻防技术》实验三实验报告 1.实验内容 根据本周所学回答问题: (1)杀软是如何检测出恶意代码的? 杀软检测恶意代码的核心逻辑是通过 “识别恶意特征或行为”,将恶意代码的特征值…

CF995F Cowmpany Cowmpensation

给定一棵以 \(1\) 为根的 \(n\) 个节点的树,第 \(i\) 个点的父亲为 \(p_i\)。你需要给第 \(i\) 个节点赋予一个整数点权 \(a_i\),需要满足下面的性质:\(\forall i \in [1,n],a_i \in [1,D]\)。\(\forall i \in [2,n…

背诵

可能是到了中年期了,总是会盯着一个地方发呆陷入沉思,或许这就是成熟吧我家猫会后空翻,跟我回家瞧瞧吧

关系运算符逻辑运算符

一.关系运算符 1.关系运算符包括<,>,>=,<=,,!= 比较这几个:最后两个低于起那几个 *由于赋值运算在整个排序中位于倒数第二的位置所以后两个排在低位 2.和!=不要输入实数 二.逻辑运算符 1.逻辑运算符包…

WPF datagrid mvvm loaded 100M items,prism.wpf,prism.dryioc

Install-Package Prism.Wpf Install-Package Prism.DryIOC#region Interfaces public interface IIDService {int GetID(); }public class IDService : IIDService {int idx = 0;public int GetID(){return Interlocke…

20232406 2025-2026-1 《网络与系统攻防技术》实验三实验报告

免杀原理与实践 一、实验内容问题回答: (1)杀软是如何检测出恶意代码的? 签名匹配:最传统的检测方式,杀软维护一个已知恶意软件的签名数据库。当扫描文件或系统时,杀软会将扫描对象与这些签名进行比对,如果发现…

20232424 2025-2026-1 《网络与系统攻防技术》实验三实验报告

20232424 2025-2026-1 《网络与系统攻防技术》实验三实验报告 1.实验内容1.1尝试使用msfvenom中的编码器生成多种类型的后门文件 1.2利用工具对文件进行加壳操作 1.3使用C语言 + shellcode编程 1.4尝试利用免杀技术通过…

MLA原理讲解

多头潜在注意力机制 首先我们来回忆一下大模型生成时一个标准多头注意力机制,首先对于第一个token,它的特征向量为H,通过Query权重矩阵,Key权重矩阵和Value权重矩阵,分别得到这个token的Q向量、K向量和V向量。然后…

LLM什么时候才能输出固定格式

转载原文地址 基于概率统计建模,llm展示了非凡的潜力。但是同样由于token的概率性输出,成为llm落地的一个小绊脚石。这里讨论一下几种常见的让llm规范输出目标格式内容的方法,不清楚当前最新研究进展是否有突破。 万…

MCP和Function Calling的区别

原文转载地址 之前一直浅浅看了一眼mcp,觉得和function calling并没有本质区别,被吹的太火了,这两天回头又看了一眼,又有了新的感悟。 让llm回答今天的天气 这种问题明显llm无法回答,因为llm无法感知外部世界,可…

《程序员修炼之道》 阅读笔记三

翻开软件工程的书籍,“石头汤”与“煮青蛙”这两个看似无关的寓言,却像两把钥匙,打开了我对“变化”与“行动”的思考。它们一个教会我如何主动推动改变,一个提醒我警惕被动沉沦,在代码敲打的日夜里,悄悄重塑着我…

sg.绑定键盘事件

python import PySimpleGUI as sglayout = [[sg.Input(key="-INPUT-")]] window = sg.Window("示例", layout) window["-INPUT-"].bind("<Return>", "ENTER"…