如何使用C ++中的insert函数将整数插入到字符串中?

时间:2016-03-06 06:45:13

标签: c++ pointers

check以下是字符串,temp1->data是整数。我想将temp1->data插入check。所以我将演员int输入const char*。这给出了warning : cast to pointer from integer of different size [-Wint-to-pointer-cast]

部分代码:

  temp1 = head;
  std::string check;
  check = "";
  int i = 0;
  while(temp1 != NULL)
  {
    check.insert(i, (const char*)temp1->data);// here is the warning
    temp1 = temp1->next;
    ++i;
  }

我想知道我有什么其他选择使用insert函数将整数(temp1->data)插入到字符串(check)中,警告的实际效果是什么[-Wint-to-pointer在我的代码上。

点数:

  1. data是整数,next是指向Node
  2. 的指针
  3. 我试图实现一个函数来检查包含单个数字的链表是否是回文。是的,我知道其他方法,但我也想通过这种方法实现。
  4. 这里我想将链表的所有数据存储到一个字符串中,并直接检查该字符串是否为回文。
  5. 此问题可能与this重复。但事实并非如此,我在这里明确要求使用字符串类中包含的insert函数将整数插入到字符串中。

    PS:使用std::to_string(temp1->data) gives me error ‘to_string’ is not a member of ‘std’

2 个答案:

答案 0 :(得分:1)

您可以使用std::to_string函数将整数转换为字符串,然后使用std::string上的插入函数将其插入字符串中。

std::string check;
check = "";
int i = 0;

check.insert(i, std::to_string(10));

您收到错误"to_string is not a member of std"的原因可能是因为您没有include <string>标题。

答案 1 :(得分:0)

首先,这是一种将整数转换为字符串而无需太多工作的方法。您基本上创建一个流,将int刷新到其中,然后提取您需要的值。底层代码将处理脏工作。

这是一个简单的例子:

stringstream temp_stream;
int int_to_convert = 5;

temp_stream << int_to_convert;
string int_as_string(temp_stream.str());

如果您想了解更多信息,请访问以下有关此解决方案和替代方案的更多信息: Easiest way to convert int to string in C++

关于您正在进行的演员表的影响,行为将是未定义的,因为您将char *设置为int值。效果不会将int值转换为一系列字符,而是将系统解释为char数组的第一个字符的位置的内存位置设置为int的值。