-4

我需要将双精度数组转换为用''分隔的char[]。我是 C++ 的初学者。请你告诉我如何进行这种转换。谢谢。

4

7 回答 7

5

您可以使用std::stringstream.

此类围绕std::string.

std::stringstream s;
s << 1.4 << " " << 1.5 << " " << -5.7;
const char* myS = s.str().c_str();

// Do something with myS.

小心内存管理。超出范围myS时不应访问指向的内存。s

于 2013-06-12T15:22:23.640 回答
0

您可以使用std::to_string.

这使您可以将数字转换为std::string.

于 2013-06-12T15:33:43.350 回答
0

我认为将双精度数转换为字符串并不那么容易。但这里有一种使用 C++ 字符串流的方法:

#include <string>
#include <cstring>
#include <sstream>
#include <iostream>

std::string to_string(double x);

int main()
{
  double pi = 3.14159;
  std::string str = to_string(pi);

  std::cout << str << std::endl;

  // Cstring:
  char digits[10];
  std::strcpy( digits, str.c_str() );

  std::cout << std::endl << "c-string:" << std::endl;
  std::cout << digits[2] << std::endl;
  std::cout << digits << std::endl;

  return 0;
}

std::string to_string(double x)
{
  std::ostringstream ss;
  ss << x;
  return ss.str();
}
于 2013-06-12T15:27:57.233 回答
0

您可以使用std::transform.

该算法允许您遍历 C++ 容器并在元素上应用函子,让您将一些转换container<T>container<U>.

于 2013-06-12T15:28:37.247 回答
0

您可以使用std::locale.

这使您可以将字符串化版本的格式修改为某些地区或社区特定的格式。

于 2013-06-12T15:30:47.787 回答
0

您可以使用标准容器之一来代替原始数组。

在运行时确定的输入和输出大小的情况下,这可以让您忘记几乎所有的内存管理问题。

于 2013-06-12T15:32:32.983 回答
0

您可以使用g++

这是一个免费的开源 C++ 编译器。

于 2013-06-12T15:35:05.277 回答