gpt4 book ai didi

c++ - 直接将通过函数传递的 const char* 文本转换为字符 vector

转载 作者:行者123 更新时间:2023-11-30 05:23:02 29 4
gpt4 key购买 nike

想象一下 MyTextClass是一个自定义类,在这种情况下将保存传递的 const char "Hello stackoverflowers"进入std::vector<char> :

class MyTextClass{
private:
std::vector<char> storage;
public:
MyTextClass(const char* _passedchars) //constructor
}

使用类似于上面的代码,我想初始化一个 MyTextClass 的实例通过将文本传递给它:

MyTextClass textholder("Hello stackoverflowers");

如果我重载 = 甚至是以下内容MyTextClass 内的运算符:

MyTextClass textholder = "Hello stackoverflowers";

问题变成了弄清楚 MyTextClass 的定义是什么构造函数应该看起来像。我这么说是因为虽然接收 const char 的构造函数没有问题。直接作为文本传递,如 "Hello stackoverflowers" ,这是一个数组,因此它的长度:

1) 无法提前设计(因为是传递的长度未知的文本);

2) 也没有在构造函数中计算出来(因为sizeof(_passedchars)/sizeof(_passedchars[0]) 只会评估指针的大小;

3) 也没有用 std::size 检索到或使用 std::beginstd::end , 因为没有实现 const char .

如果没有这些信息,我就不知道如何转换 const char参数_passedchars MyTextClass 的构造函数进入内部std::vector<char>我叫storage在上面的代码示例中。

因此,我如何转换传递的 const char进入std:vector<char>在一个函数中,在想要创建自己的字 rune 本类的情况下?

最佳答案

您可以使用 strlen确定 C 风格字符串的长度。

或者,您可以将参数类型更改为 std::string 并使用其 sizelength 函数来获取字符串的长度字符串。

关于c++ - 直接将通过函数传递的 const char* 文本转换为字符 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39382959/

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