Добавление массива - PullRequest
       3

Добавление массива

0 голосов
/ 31 мая 2011

У меня есть 2 переменные:

int a;
char b[10];

Я хочу объединить / добавить обе данные в один массив:

temp[50];

Как я могу это сделать?

Ответы [ 5 ]

2 голосов
/ 31 мая 2011

Вы не предоставили нам достаточно информации о типе temp или о том, почему вы хотите это сделать, обычно объединять типы не имеет особого смысла.Однако, если temp является массивом char и вы хотите объединить их оба для какого-то полезного вывода, вы можете использовать sprintf:

int a = 10;
char b[10] = "apple";
char temp[50];

sprintf(temp, "%d %s", a, b);

/* 10 apple */
puts(temp);

%d в sprintf используется для представления десятичного целого числа, в то время как%s используется для представления строки с нулевым символом в конце.

0 голосов
/ 31 мая 2011
struct stuff {
    int a;
    char b[10];
}

struct stuff temp[50]; // an array of 50 structs with 2 members each.
0 голосов
/ 31 мая 2011

Вы имеете в виду:

char temp[50] = {a, b[0], b[1], ...};

Если так, то это:

char temp[50];
temp[0] = a;
memcpy(&temp[1], b, sizeof(char) * 10);
0 голосов
/ 31 мая 2011

Нет смысла смешивать разные типы данных в одном массиве - я бы не советовал этого делать. Если вы действительно должны каким-то образом объединить их, вы можете использовать структуру.

С другой стороны, технически это возможно, так как int достаточно большой, чтобы содержать символ - так что вы можете создать массив temp [] как тип int и заполнить его целыми числами или символами из другого массива. ..

0 голосов
/ 31 мая 2011

каков тип данных вашего временного секретаря [50] ??Если это char temp [50], то вы можете превратить ваше int в char, используя приведенное ниже предложение от того же сообщества stackoverflow, от JaredPar

char dig = (char) (((целое) '0') + I);[ref] https://stackoverflow.com/questions/1114741/convert-int-to-char-c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...