Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вытащить из целого числа все цифры 
V
    Опции темы
N1ko
Дата 1.7.2008, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Помогите пожалуйста решить проблемку. Меня интересует, возможно ли из целого числа при помощи средств С++ вытащить цифры. Например из числа 12345 в масив записать все его цифры по очереди 1,2,3,4,5.  Эту проблему я могу решить нахождением остатка при деление числа на 10. Меня интересует, существуют ли какие то другие методы или это единственный?
PM MAIL ICQ   Вверх
mrbrooks
Дата 1.7.2008, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Конечно можешь. Преобразуешь число в массив символов и работаешь с этим массивом по элементам.

Код

unsigned char str[100];
itoa(i,str,10);
//теперь в str[0] будет 1, в str[1] будет 2 и т.д.

PM MAIL   Вверх
jonie
Дата 1.7.2008, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



теже яйца, только сбоку.
itoa навверняка использует while(i) {char ch=(i%10)+'0'; i/=10;} или подобное....
да и к чему другие способы? если число константно, то можно использовать шаблоны...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
N1ko
Дата 1.7.2008, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Спасибо. Помогло. И ещё один вопрос. Возможно кто то знает. Как сделать так, что бы выводило числа примерно в таком виде?
А если быть более точным, то заносила в массив эти числа.
0001
0002
0003
...
0010
0011

Вот часть программы которая у меня есть и выводит эти числа,но в обчном формате:
1
2
3
4
5
...
10
11
Код

char wrd[10]="";
    for(k=0;k<pow(10.0,j);k++)
    {
        
            itoa(k,wrd,10);
            std::cout<<"k="<<wrd<<std::endl;
        
    }

То есть мне нужно что бы в wrd забивалась последовательность чисел в формате 0001, 0002, 0003 и тд

Это сообщение отредактировал(а) N1ko - 1.7.2008, 10:35
PM MAIL ICQ   Вверх
SABROG
Дата 1.7.2008, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 1
Всего: 91



Смотри параметр "ширина"/"Width" у функций типа printf.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
bsa
Дата 1.7.2008, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



N1ko
Код
std::cout << std::setw(1) << "k=" << std::setw(4) << std::setfill('0') << wrd << std::endl;

PM   Вверх
N1ko
Дата 1.7.2008, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Спасибо огромное за помощ. Я таких операторов никогда и не встречал. Теперь ясно
PM MAIL ICQ   Вверх
bsa
Дата 1.7.2008, 13:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(N1ko @ 1.7.2008,  12:35)
Спасибо огромное за помощ. Я таких операторов никогда и не встречал. Теперь ясно

А тут никаких операторов кроме << и нет.
http://www.cplusplus.com/reference/iostream/manipulators/
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0711 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.