将const char **转换为const char *
convert const char ** to const char *
i具有以下代码,可以正常工作。
const char** array = new const char*[_list.size()];
unsigned index = 0;
for (std::list<std::string>::const_iterator it = _list.begin(); it != _list.end(); ++it) {
array[index] = it->c_str();
index++;
}
我的问题是,如何将const char **转换为const char *。请帮助。
这实际上是一个XY问题。Hameed应该告诉他他解决了什么问题,而不是他要完成的解决问题的哪一步。实际上是什么?将字符串列表转换为C字符串数组?如果是,则应以这种方式进行某种方式(可悲的是,应该复制数据)
char** arr = new char*[_list.size()];
int i = 0;
for(auto it = _list.begin(); it != _list.end(); ++it, +i)
{
const char *s = it->c_str(); // should not be modified or deleted
const size_t l = strlen(s);
arr[i] = new char [l+1];
std::copy(&s[0],&s[l], &(arr[i][0]));
}
...
您需要从列表中获取i-th元素吗?
auto it = _list.begin();
std::advance(it, i);
const char *a = it->c_str();
如果为每个元素进行循环进行操作,请改用它。
串联所有字符串?迭代列表,计算总长度,然后分配该长度的字符阵列,然后一一复制字符串。我有模糊的记忆力,即Boost将其作为算法::已经加入了,但是STL需要长而柔软的代码,无法通过电话设计,无论谁可以编辑答案。以不同的形式使用十二个解决方案呈现在堆栈上:如何将字符串向量插入字符串(优雅的方式)
相关文章:
- 在字符串函数中抛出'char const*'实例后调用的终止
- 双重标准?为什么只有 char* const&a = "bla" 的警告?
- 包括"lvtocon.h",未定义对'operator<<(std::ostream&, char const*)的引用
- 为什么 const char* const & = 可以编译"hello"?
- 将字符串文本常量定义为 char const* 和 wchar const*
- 如何将std::wstring转换为char const[]
- "char const * name() const _WEBSOCKETPP_NOEXCEPT_TOKEN_ {"剂量是什么意思
- 使用提升对字符串进行标记化时,将令牌转换为 char* const* 时失败
- 如何从 std::initializer_list<char const* 构建 std::vector<std::string>>
- 将 std::vector<std::string> 转换为 const char* const*
- 引发"char const*"错误的实例后调用的终止
- 将const char * const参数成员分配给新值
- 从'const char**'到'char* const*'的转换无效
- 从 sub_match<常量字符 *>' 转换为'const char *const &'
- char*const和constchar*之间有什么区别?(重复-需要更多澄清)
- 使用工厂方法时编译器错误:无法转换"const std::p air<char* const
- HEVC 解码器端口 Android 警告:从 'signed char*' 到 'char const* 的转换无效*
- 如何从'char const*'中删除常量
- 'char const *str'作为模板参数
- 为什么不;t strlen(.)应为const char*const str,而不是const char*