gpt4 book ai didi

c++ - 在函数周围传递 C 风格的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 14:58:14 25 4
gpt4 key购买 nike

我遇到如下情况,我需要将一个 C 风格的字符串传递给一个函数,并将其存储到一个容器中,以供稍后使用。容器正在存储 char*。我想不出创建内存并将其存储到 vector 中的有效方法。与在 overloadedfunctionA (int) 中一样,我需要创建新内存并复制到缓冲区中,然后传递到 overloadedfunctionA(char*) 中,它再次创建新内存并再次复制到缓冲区中。想象一下,我有很多 int 和其他类型的项目,而且我每次都做两倍的工作。解决它的一种方法是将逻辑从 overloadedfunctionA(char*) 复制到 overloadedfunctionA(int)。但这会导致很多重复代码。关于更有效的方法有什么想法吗?

谢谢。

int main(){

overloadedfunctionA(5);
overloadedfunctionA("abc");

}

vector<char*> v1;

void overloadedfunctionA(int intA){
char* buffer = new char[];
convert int to char in buffer;
overloadedfunctionA(buffer1);
delete buffer;

}

//act as base function that has a lot of logic need to be performed
void overloadedfunctionA(char* string1){
char* buffer = new char[];
copy string to buffer;
insert string into vector1;
}

最佳答案

为了所有神圣的东西,只需在内部使用 std::string。您可以从 const char* 分配给 std::string,并且您可以访问 std::string 的底层 C 字符串通过 c_str() 方法。否则,您需要编写一个包装类来为您处理内存分配,并将该类的实例存储在您的 vector 中;但是,std::string 已经是这样一个包装类。

关于c++ - 在函数周围传递 C 风格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734707/

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