2015-07-08 3 views
-6

Нужно ли умножать первое число на 10, а затем добавлять 2-е или есть способ в c, чтобы прокладывать числа рядом друг с другом в местоположении.Как разместить 5 рядом с 0 (5 + 0 = 50) вместо добавления 5 + 0 = 5 в c?

+1

Вы пытаетесь получить число или строку в результате? –

+0

Можете ли вы опубликовать код, показывающий, что вы пытаетесь сделать? Это не ясно из вопроса. –

+0

определите/покажите как код, что вы подразумеваете под _numbers_ и _location_: какой тип переменной? какие значения? – DrKoch

ответ

0

Там нет += конкатенации оператор в C.

Вы можете snprintf() эти два числа в массив символов. И преобразуйте его обратно в целое число с помощью функции strto*, если вам это нужно в целочисленном представлении.

+0

'* printf' /' strto * 'довольно overkill – DrKoch

+0

Я полагаю, что ответ должен быть немного больше а не всего двух цифр. –

+0

Согласовано. В любом случае некоторые манипуляции с массивом символов более эффективны. Я думаю, что мой ответ ниже получит OP. – DrKoch

2

Добавление цифр с помощью целых чисел и дополнение:

int i1 = 5; 
int i2 = 0; 
int result = i1 * 10 + i2; /* 50 */ 

Конкатенация символы, чтобы получить строку "50":

char c1 = '5'; 
char c2 = '0'; 
char result[3]; 
result[0] = c1; 
result[1] = c2; 
result[2] = '\0'; /* End of string */ 
0

Если вы заинтересованы только с целыми числами, а затем использовать этот

int a = 5; 
int b = 0; 
int c = a * 10 + b 

Для заполнения строки

char a = '5'; 
char b = '0'; 
char c[3]; 
snprintf(c, 3, "%c%c", a, b); 
c[2] = '\0'; 
+2

Примечание: использование 'int snprintf (char * s, size_t n, const char * format, ...);' неверно. 'c [2] = '\ 0';' не требуется. – chux

+0

Извините, что ошибся ... Отредактировано ... \ 0 что-то я поставил в качестве меры предосторожности –

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