2012-07-19 100 views
0

我想將整數和字符存儲在同一個數組中。像: EA1001或EB1254 他們應該是身份代碼。 它不一定是一個數組,只是我可以用來將這些字符串存儲在一起,否則我很難冗餘地使用它們。 謝謝你的時間。將char和int放入同一個數組

+2

這就是所有'char',而不是'int'。如果你不知何故需要在數字上做一些數字(我懷疑你會這樣做),那麼你需要解析id並存儲在'struct' /'class'中。 – nhahtdh 2012-07-19 12:14:40

+0

爲什麼你不把它存儲爲'char'? – Sagi 2012-07-19 12:15:15

+2

「EA1001」看起來像一個字符串,「EB1254」也是如此,只是有一個「std :: set 」,它包含所有這些「代碼」 – Nim 2012-07-19 12:16:15

回答

0

答案是工會陣列。但這可能是危險的。

union 
{ 
    char char_var; 
    int int_var; 
}same_array; 

和做的聲明:

same_array my_array[1000]; 

因爲int是16或32位,而char是8位。多數民衆贊成代表一個32位區域爲int和字符的唯一方法

+0

不,它不是..(第一部分)... – Nim 2012-07-19 12:15:33

+0

答案只是字符[]或字符串... – 2012-07-19 12:16:08

+0

這並不真正遵循問題的邏輯,它只是一個字符串,後跟一個int。 – chris 2012-07-19 12:18:32

0

最合理的解決方案將使用std::string。從你的問題看來你neeed只是認爲可以包含數字的字符串:如果你想一套那些

std::string a = "EA112312"; 

,使用std::vector與它的元素是字符串:

std::vector<std::string>vec; 
vec.push_back(a);//adding an element to the vector, where a is a string. 

嗯,其實,你甚至可以做一些事情ILKE此:

int a = 'm'; 
std::cout << (char)a; 

所以technicaly有可能這兩個數字和字符存儲在int秒的陣列,但那會是......呃......很奇怪。

2

你不能將它們存儲爲字符串嗎?例如。

std::vector<std::string> my_codes; 
my_codes.push_back("EA1001"); 
my_codes.push_back("EB1254");