gpt4 book ai didi

c++ - 将字符串转换为非常量字符*

转载 作者:行者123 更新时间:2023-11-28 00:57:17 25 4
gpt4 key购买 nike

我有一些按如下方式构建的 C+ 数组:

std:array<const char *, 4) test1 = {abc.c_str(), def.c_str(), ghi.c_str()};

其中 abcdefghistd::string

我必须将这个数组传递给另一个具有以下原型(prototype)的函数:(int argc, char * argv[])

我应该如何修改数组,以便为​​我提供 non-const char* 可以传递给上面的函数。或者我应该将函数修改为 const char*。我不确定该函数是否尝试在某处修改 char*,因为该函数代码不是我的并且当前也不可用。
但是,无论如何最好问一下我将如何传递非 const char * 上述函数的数组?

最佳答案

如果函数有可能修改字符串,您应该将字符串的大小调整为函数可能使用的最大大小,然后在返回时再次调整它的大小。

abc.resize(max);
DoSomething(&abc[0]);
abc.resize(strlen(&abc[0]));

如果您确实知道函数不会修改字符串,那么函数原型(prototype)就是在骗您。你可以躺下:

DoSomething(const_cast<char *>(abc.c_str()));

关于c++ - 将字符串转换为非常量字符*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10442797/

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