2013-05-02 2 views
-6

Если у меня есть массив из 4 значений, как бы сохранить все значения в одной переменной?Как вы храните массив в переменной?

char d[4]; 
    int allvalues; 
    d[0] = 1; 
    d[1] = 2; 
    d[2] = 3; 
    d[3] = 4; 

Я хочу allvalues ​​= 1234. Если я добавлю этот фрагмент кода, вывод будет отличаться.

allvalues = d; 
    printf("%d", allvalues); 

Спасибо!

+3

'allvalues ​​= 1000 * d [0] + 100 * d [1] + 10 * [2] d + d [3];' –

+0

Ничего я думаю, что его работу. – Ammar

+1

Это потому, что вы использовали неправильные индексы при заполнении 'd'. Вы использовали 3 и 4 вместо 2 и 3, используя 'd [4]' вызывает неопределенное поведение. –

ответ

-1

Следующие преобразования преобразуют массив символов в целое число.

allvalues = atoi(d) 
+1

Нуждается в массиве с концевыми окончаниями и не имеет проверки ошибок. Когда у вас есть массив с 0-символом, я предпочитаю использовать 'strtol'. –

+0

'atoi()' не выполняет проверку ошибок. –

+0

@ DanielFischer не является strtol() в C++. Это отмечено как C. Но я согласен, что забыл о нулевом завершении. – Evo510

0

Вы должны пройти через массив и добавить значения в строку. Что-то вроде этого должно сделать трюк:

char d[4]; 
string allvalues; 
d[0] = 1; 
d[1] = 2; 
d[3] = 3; 
d[4] = 4; 

for(int i =0; i<4; i++) 
{ 
    allvalues = allvalues+d[i] 
} 
printf("%s", allvalues); 

Надеюсь, это поможет!

Смежные вопросы