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在我的代码上。
此问题可能与this重复。但事实并非如此,我在这里明确要求使用字符串类中包含的insert函数将整数插入到字符串中。
PS:使用std::to_string(temp1->data) gives me error ‘to_string’ is not a member of ‘std’
。
答案 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的值。