как создать целочисленную переменную, извлекая первые несколько местоположений массива

#c #arrays #integer

#c #массивы #целое число

Вопрос:

Я хочу спросить, есть ли способ, с помощью которого я могу преобразовать некоторую часть массива int в переменную int

например

    // my integer array contain 3,4,5,2,7 
    int array[] = {3,4,5 ,7,1,5,5,} ;
  

и я хочу, чтобы переменная int содержала только первые 3 элемента массива, то есть моя переменная должна быть такой

`

 int var = 345 ; // first three array members
  

я использую программирование на C
, спасибо

Ответ №1:

Может быть, что-то вроде этого?

 int var = 0;

for (i = 0; i < 3; i  ) {
    var *= 10;
    var  = array[i];
}
  

Ответ №2:

Вы имеете в виду строковое соединение?

 char tmp[64];
sprintf(tmp, "%d%d%d", array[0], array[1], array[2]);
var = atoi(tmp);
  

Обратите внимание, что приведенный выше код не проверял int или переполнение буфера.

Ответ №3:

 char *s = (char*)malloc(sizeof(char) * numOfArrayElementsToConvert);
for(int i =0;i<numOfArrayElementsToConvert;i  ){
   s[i] = itoa(arr[i]);
}

int var = atoi(s);
  

Комментарии:

1. itoa не является стандартной функцией c lib, и она возвращает char * то, что вы используете char *s без инициализации.