![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
irvis |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 25.4.2006 Репутация: нет Всего: нет |
у меня есть массив символов из него надо получить число.
как? например: строка "7899" мне надо получить число 7899 вот кусок кода из моей програмки
вот str1 этот массив символов, как мне теперь получить число? stroka[i] это вводима строка, она должна быть именно строкой Это сообщение отредактировал(а) irvis - 21.6.2006, 09:32 |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
atoi(str1)?
Добавлено @ 09:35 или самому написать
Это сообщение отредактировал(а) MAKCim - 21.6.2006, 09:36 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
irvis |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 25.4.2006 Репутация: нет Всего: нет |
я не знаю что такое unsigned
и не понимаю (str[i]-48) что за число 48? |
|||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
книги читай
48 - код '0', соответственно str[i]-48 - числовой эквивалент символа из '0'...'9' -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
irvis |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 25.4.2006 Репутация: нет Всего: нет |
спасибо!
|
|||
|
||||
Athlon |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 15.1.2006 Где: Украина:: Запорож ье Репутация: нет Всего: нет |
попробуй перевести с английского ![]()
Как известно в таблице ASCII цифры 0..9 расположены последовательно, число 48 (0х30) - положение нуля в таблице ASCII т.е. строчка
инициализирует num номером символа str[i] в таблице ASCII, и чтобы получить значение соответствующей цифры, тебе нужно скоректировать этот номер на 48 (0х30). |
||||||
|
|||||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
MAKCim, пиши лучше сразу str[i]-'0'
irvis, вот тебе кусочек кода с проверками и всем, чем нужно ![]()
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
разница? ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
1) Вопросов, что такое 48 не возникнет
2) Всё конечно ASCII, но не факт, что везде 3) Логичнее и понятнее, чем запоминать цифры. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
sergej.z
учту ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
EvgenZ |
|
|||
![]() Freedom in me ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 3.8.2006 Репутация: 1 Всего: 11 |
А как лучше сделать, чтобы char содержащий двоичное число (101010101001) можно было инрементировать, складывать и т.д. Переводить его в инт, делать что-то и опять перводить в char?
-------------------- <удалено администрацией форума> |
|||
|
||||
SparF |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 387 Регистрация: 14.9.2006 Где: Санкт-Петербург/М осква Репутация: нет Всего: 18 |
Очень удобно в этом случае использовать функции sscanf() и sprintf()
один из самых больших плюсов - предоставляемые ими шаблоны форматной строки. -------------------- Люди, не пользуйтесь пиратским программным обеспечением - переходите на Linux! |
|||
|
||||
EvgenZ |
|
|||
![]() Freedom in me ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 3.8.2006 Репутация: 1 Всего: 11 |
SparF,
![]() -------------------- <удалено администрацией форума> |
|||
|
||||
SparF |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 387 Регистрация: 14.9.2006 Где: Санкт-Петербург/М осква Репутация: нет Всего: 18 |
Example.
Output: Benny -> 29 Если признаться, то самому было влом писать, пример взят из http://www.cplusplus.com/ref/cstdio/sscanf.html sprintf() работает также как и обычный printf(), только вывод - в строку -------------------- Люди, не пользуйтесь пиратским программным обеспечением - переходите на Linux! |
|||
|
||||
EvgenZ |
|
|||
![]() Freedom in me ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 3.8.2006 Репутация: 1 Всего: 11 |
хм насколько я понял получается тотже atoi (перевод из char в int) ? Или я не понял соли?
-------------------- <удалено администрацией форума> |
|||
|
||||
SparF |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 387 Регистрация: 14.9.2006 Где: Санкт-Петербург/М осква Репутация: нет Всего: 18 |
Только с более широкими возможностями: + сама строка может включать не только цифры, а может быть абс любой строкой - применяй ты atoi в вышеизложенном примере - пришлось бы сначала из длинной строки "Benny is 29 years old" выделить "29" + именяется формат входных данных - форматную строку переписал и забыл ), а в случае с atoi придется повозиться с кодом выделения подстроки ("29" в нашем случае) - тоже ничего сложного, но все же лишний труд и лишние ошибки) * в случае, когда работаешь уже с выделенной подстрокой и надо взять только одно значение, то разница, конечно, теряется..... *кроме того переводить не обязательно только в int (сходи по ссылке, которую я указал, там полное описание ![]() ![]() -------------------- Люди, не пользуйтесь пиратским программным обеспечением - переходите на Linux! |
|||
|
||||
EvgenZ |
|
|||
![]() Freedom in me ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 3.8.2006 Репутация: 1 Всего: 11 |
Я заходил, спасбио за полезную и интеерсную информацию, но в данном конкретном случае нужен С++. Что-то я похоже передумал сегодня не могу понять работу itoa:
char num[10]; std::cout << "vvedi dvoi4noe 4islo\n"; std::cin >> num; int n = atoi(num); n+=5; num = itoa(int XXX, char* YYY, int ZZZ); // ??? вот тут не догоняю, как назад в чар забахать? что такое ХХХ YYY ZZZ ? Это сообщение отредактировал(а) EvgenZ - 16.9.2006, 18:10 -------------------- <удалено администрацией форума> |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
С++, так С++:
|
|||
|
||||
EvgenZ |
|
|||
![]() Freedom in me ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 3.8.2006 Репутация: 1 Всего: 11 |
а можно с помощью itoa объяснить?
-------------------- <удалено администрацией форума> |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
http://www.codenet.ru/progr/cpp/spru/itoa.php -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
EvgenZ |
|
|||
![]() Freedom in me ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 3.8.2006 Репутация: 1 Всего: 11 |
Всем огомное спасибо, поставьте пожалуйста Daevaorn, и Romikgy, +
![]() -------------------- <удалено администрацией форума> |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
EvgenZ, поднимишся выше 100 постов, сам поставишь если не забудешь
![]() Удачи в программировании ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |