我正在尝试将“char **”传递给另一个函数(我想要使用的函数需要将该形式作为参数),但我所拥有的是一个双精度数组。 我一直试图找到一些方法将双打转换为C字符串并收集或连接它们,但是......我正在四处奔波,除了编译器错误之外没有任何地方。 我发布了这些代码,但这并不是垃圾邮件。
任何人都碰巧知道如何获取7个双倍值并获得它们的char **?
答案 0 :(得分:1)
如果你正在使用C,一个选项是分配char
缓冲区并调用snprintf()
来构建来自双精度的字符串值,就像将字符串打印到控制台一样(例如格式)字符串,例如"%f"
后跟值。)
如果可以使用C ++,std::ostringstream
类具有类似的效果(<sstream>
标题);您可以<<
数值,调用str()
创建std::string
,最后在c_str()
对象上调用string
以获得char*
}。可以将这些指针放入临时C数组中以生成char**
。
答案 1 :(得分:0)
如果我正确理解了这种情况:
让我们声明你的函数f:
int f(const int n, const double* values, char** out_words);
第一个参数n是双数的数,值是输入的双数,out_words是你要写数字的C字符串的数组。
我假设out_words正确分配了至少n个指针,每个指针指向一个足够大的字节来保存数字。
所以函数体可能是这样的:
#include <string.h>
int i;
for (i=0; i<n; ++i) {
sprintf(out_words[i], "%g", values[i]);
}