2014-12-13 143 views
1

我正在寻找一种方法将存储为char *的4个字符转换为int,反之亦然,因为我想将char *通过需要int作为参数的函数。这里有一个例子:C++将存储为char *的4个字符转换为int,反之亦然

char* word = "abcd"; 
int number; 

// write word in number 

char* word2; 

// write number in word2 

最后word2应该和word一样。它也可以帮助我,如果你知道如何只在一个方向转换它。

+0

多久你'int'在*字节*?如果它是4(典型值),则不能在其中存储5个随机字符。 – usr2564301 2014-12-13 12:35:10

+0

什么整数等于“你好”?听起来更像是你程序设计的问题。 – 2014-12-13 12:35:18

+0

如果一个函数接受一个'int'参数,那么可能它不应该接受字符串。也许你写的不是你想要问什么? – 2014-12-13 12:35:45

回答

3

假设它会被转换回的系统上相同的字节顺序

number=*((int*)word); 

转换回:

char word2[5]; 
*((int*)word2) = number; 
word2[4]=0; 
+0

正是我所搜索的,谢谢 – timakro 2014-12-13 12:45:47

+0

这是技术上未定义的行为,因为它违反了严格的别名。 – Mysticial 2014-12-15 08:25:47

+0

你可以举一个平台/编译器的例子吗? – Photon 2014-12-15 16:08:34

相关问题