gpt4 book ai didi

c++ - 获取字符串文字的字符长度

转载 作者:行者123 更新时间:2023-11-30 01:23:22 27 4
gpt4 key购买 nike

如何在不使用像这样的 cstdlib 的情况下获得字符串文字的长度(给出或采用空终止符):

char* foo = "foobar";
cout << sizeof(foo) << endl; //Always outputs 4
cout << sizeof(*foo) << endl; //Always outputs 1

我必须在字符串上重载 + 运算符,该字符串可能/可能不包含串联中的字符串文字。在不知道传递的 char*(或者我猜是 char[])的长度的情况下,我无法为字符串分配内存。

最佳答案

foo 是一个指向字符串的指针。是的,它是一个常量字符串,但归根结底它仍然是一个 char*

特别是,一个 char 指针 (foo) 的大小是 4 个字节(在 32 位系统上 [好吧,一个有 4 个字节指针的系统]),一个 char ( *foo) 是 1 个字节。

当您使用指向字符串文字的指针时,没有(标准)方法可以知道字符串的长度。

然而,当您使用数组时,您可以知道大小:

char foo[] = "some string";
size_t len = sizeof(foo) - 1;

关于c++ - 获取字符串文字的字符长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101405/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com