2014-12-13 90 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

相關問題