2012-07-19 104 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");