【问题标题】:How Would I Convert an Integer to Char* C++如何将整数转换为 Char* C++
【发布时间】:2013-01-25 16:26:18
【问题描述】:

我有一个 fork 进程,它将 2 个数字相加并返回一个整数。

唯一的问题是总和是一个整数,为了继续返回数组,我需要一个指向该整数的 char*。

任何想法我如何在 C++ 中实现这一点; (我不能使用 String.h 库)

编辑**

这是我正在使用的代码部分

 //process has been completed
else
{
for(int q=0; q<numofProc; q++)
{
wait(&status);
if (WIFEXITED(status))
    {
    value = WEXITSTATUS(status);
temp = (char)(value);
    char* pointer = (char*)temp;
sumArray[sizeSum] = pointer;
sizeSum++;
    }
}

谢谢!

【问题讨论】:

  • 你不能使用string.h?你能用std::string吗?如果没有,我不是特别感兴趣。
  • 你的意思是你不能使用std::string?还是旧的 C 风格的字符串函数?
  • 另外,你试过什么?我们不会“为 [您] 做这件事”,尤其是在您无法使用 任何 实际 C++ 功能的情况下。

标签: c++ integer char


【解决方案1】:

如果您希望char* 指针指向int,您只需将int* 转换为char*。喜欢(char*)intptr。不过,这对我来说听起来不是一个好的c++ 练习。确保不要将指向函数的局部变量的指针返回。

我假设如果您想返回指向整数的字符表示的指针,您会这么说。

【讨论】:

  • 所以我会将 char* 设置为整数的地址,例如 char* temp = &integer;
  • 类似的东西。但请再次记住,如果 integer 是临时的,则尝试取消引用指针时会遇到问题。
  • 您编辑的代码不太可能正常工作,因为temp 的东西将会丢失。但是,根据您要实现的目标,您也可以将 int 本身存储为指针。你为什么不做一个整数数组呢?
【解决方案2】:
int num = 3234;
stringstream ss;
ss << num;

const char *res = ss.str().c_str();

【讨论】:

  • 如果你从函数中返回它,你就完蛋了。
  • 我花了很多时间在最后一行找到问题一次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 2010-10-26
  • 1970-01-01
  • 1970-01-01
  • 2017-10-08
  • 2016-04-30
相关资源
最近更新 更多