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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение символа из string'а 
:(
    Опции темы
Игорь1024
Дата 4.10.2010, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 11.5.2009
Где: Дальний Восток

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



Есть массив int и переменная string.
Как перезаписать каждый элемент string'а (там только числа) в массив int?
(В смысле std::string buffer="231"; Но a[0]=2; a[1]=3 итд.- надеюсь внятно объяснил)
Пробовал:

...
int a[3];
std::string buffer="231";
for(int j=0;j<buffer.length();j++)
{
a[j]=atoi(&buffer.at(j));
cout<<a[j++];
}
...
Понятное дело из числа просто-напросто убираются разряды (при выводе)-atoi всю строку переводит .
Может через strtol как-нибудь можно?
Заранее благодарен.

Это сообщение отредактировал(а) Игорь1024 - 4.10.2010, 06:41
--------------------
The God is real,unless he is declared as integer.
PM MAIL   Вверх
cutwater
Дата 4.10.2010, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

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



Для случая, когда заведомо известно, что строка состоит из символов [0-9]

Код

int a[3];
std::string buffer="231";
for(int j=0;j<buffer.length();j++)
{
    a[j] = buffer[j] - '0';
    cout<<a[j];
}


Это сообщение отредактировал(а) cutwater - 4.10.2010, 07:30


--------------------
user posted image
PM MAIL   Вверх
Игорь1024
Дата 4.10.2010, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 11.5.2009
Где: Дальний Восток

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



я пробовал так, только без вычитания нуля. {сейчас всё работает}
Можете объяснить смысл этой операции?
--------------------
The God is real,unless he is declared as integer.
PM MAIL   Вверх
azesmcar
Дата 4.10.2010, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(Игорь1024 @  4.10.2010,  08:01 Найти цитируемый пост)
Можете объяснить смысл этой операции? 

в строке числа хранятся как символы, а хранение символа это всего лишь хранение его кода.
Например
код символа '0' = 48
код символа '1' = 49
код символа '2' = 50
код символа '3' = 51
...
и так далее
т.е. в строке ("231") на самом деле храниться массив из чисел
'2', '3', '1'
а это
50, 51, 49
вычитая '0' (т.е. 48) мы получаем реальное число

PM   Вверх
Игорь1024
Дата 4.10.2010, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 11.5.2009
Где: Дальний Восток

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



cutwater, azesmcar, спасибо за помощь.
--------------------
The God is real,unless he is declared as integer.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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