2016-03-06 128 views
1

低于check是字符串,而temp1->data是整数。我想将temp1->data插入check。所以我输入intconst char*。这使代码warning : cast to pointer from integer of different size [-Wint-to-pointer-cast]如何在C++中使用插入函数将整数插入到字符串中?

部分:

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; 
    } 

我想知道我有使用插入功能插入整数(temp1->data)转换为字符串(check)什么其他的选择,什么是警告的实际效果[-Wint-to-pointer-cast]在我的代码上。

点:

  1. 数据是整数,其次是指向节点
  2. 我想要实现的功能,以检查是否含有单位数链表是回文与否。是的,我知道其他方法,但我只是想通过这种方法来实现。
  3. 这里我想将链接列表的所有数据存储到一个字符串中,并直接检查字符串是否是回文。

此问题看起来可能与this重复。但它不是,我在这里明确要求使用包含在字符串类中的插入函数将整数插入到字符串中。

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

+0

你想做什么?你是否愿意将一个整数插入到一个字符串或其他东西? – surajsn

+0

数据的性质是什么,以及为什么要尝试这样做? – StoryTeller

+0

你能更详细地描述你想做什么吗?例如。你试图让字符串包含数字的文本表示,或其他东西 –

回答

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的值的位置设置为内存位置。

+1

这是一件快速而简单的事情。 –

+0

@ n.m。公平的批评,更新语言以更真实地描述提供的解决方案。 – mabeechen

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>头。

相关问题