基元到字符**

primitive to char**

本文关键字:字符      更新时间:2023-10-16

我正试图将一个"char**"传递给另一个函数(我想要使用的函数需要该形式作为参数),但我得到的是一个双精度数组。我一直在尝试找到一些方法来将doubles转换为C字符串,并收集或连接它们,但是。。。我四处打转,除了编译器错误,什么也没得到。我会发布代码,但这一切都不是垃圾。

有人知道如何取7个双值并用它们获得一个字符**吗?

如果您使用C,一个选项是分配char缓冲区并调用snprintf()从doubles构建字符串值,就像将字符串打印到控制台时一样(例如,格式字符串,如"%f",后跟值)。

如果可以使用C++,std::ostringstream类也有类似的效果(<sstream>头);可以将<<的数值放入其中,调用str()创建std::string,最后在string对象上调用c_str()获得char*。这些指针可以被放入一个临时的C数组中以产生一个CCD_ 12。

如果我正确理解情况:

让我们这样声明你的函数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]);
}