Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: слепить переменные  (Прочитано 12239 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
tatar1n
Гость
« : 25-11-2008 15:25 » 

Добрый день.
Подскажите пожалуйста которая может склеить 2 и более переменных в Си\C.
Например 2 и 4 на выходе должны получить 24.
2*10 + 4 не предлагайте  Улыбаюсь
Не судите строго я только учусь  Улыбаюсь
« Последнее редактирование: 25-11-2008 15:54 от Алексей1153++ » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 25-11-2008 15:32 » 

Код:
char bufer[3]={0,0,0};

char c1=2;
char c2=4;

//трах-тибидох-слепляем!
bufer[0]=c1+'0';
bufer[1]=c2+'0';

//bufer - строка "24\0"

сильно упрощённо, конечно ))

Можно ещё через
Код:
char bufer[100];
::memset(bufer,0,sizeof(bufer));
sprintf(bufer,"%d%d",2,4);
Записан

tatar1n
Гость
« Ответ #2 : 25-11-2008 15:48 » 

А как именно в одну переменную а не массив?)
Записан
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 25-11-2008 15:51 » 

tatar1n, упаковать, что ли?
Записан
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 25-11-2008 15:52 » 

Код:
#define LOBYTE(w)         ((uint8_t)((uint16_t)(w)))
#define HIBYTE(w)         ((uint8_t)((uint16_t)(w) >> 8))
#define MAKEWORD(a,b)     ((uint16_t)(((uint8_t)(a)) | ((uint16_t)((uint8_t)(b))) << 8))
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 25-11-2008 15:53 » 

tatar1n, действительно, что хочешь добиться то ? Не строка тебе нужна ?
Записан

tatar1n
Гость
« Ответ #6 : 25-11-2008 15:54 » 

хз как назвать Улыбаюсь
например
x1 = 2;
x2 = 4;
и чтобы стало например
x3 = 24;
Проще говоря приписать одну переменную ко второй и занести результат в новую.
Значение x1,x2,x3 - число
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 25-11-2008 15:55 » 

а числа десятичные ?
Записан

tatar1n
Гость
« Ответ #8 : 25-11-2008 15:59 » new

Проше говоря есть программа которая считывает водимую строку.
Пример.
Жили у бабушки 999 гусей  Улыбаюсь
Доходит до числа (999) и заносит ее в переменную.
Проблема в том что он считывает по 1 символу и выдает отдельно 9 9 9. Нужно их склеить и занести в переменную (int).
Вот както так.
 Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #9 : 25-11-2008 16:02 » 

tatar1n, лучше через строку - более универсально. Но можно и так A*100+B*10+C - иначе никак
Записан

tatar1n
Гость
« Ответ #10 : 25-11-2008 16:04 » 

Эх жаль, придется по старинке))
Всем спасибо!  Улыбаюсь
Записан
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 25-11-2008 16:08 » 

tatar1n, есть варианты.
1. можно разбирать уже считанную строку: встретил цифру - и посимвольно идёшь дальше, пока цифры не закончатся. Потом всю подстроку с цифрами конвертишь в число (типа atoi(substr));
2. можно всё то же самое, но поэлементно ( res = res * 10 + new_num)
Есть, полагаю, и другие варианты. Это навскидку.
Записан
tatar1n
Гость
« Ответ #12 : 25-11-2008 16:11 » 

tatar1n, есть варианты.
2. можно всё то же самое, но поэлементно ( res = res * 10 + new_num)
Спасибо Вад! Так и сделаю)
Еще раз всем большое спасибо!!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines