| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Получение символа из string'а |
| Автор: Игорь1024 4.10.2010, 06:39 |
| Есть массив 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 как-нибудь можно? Заранее благодарен. |
| Автор: cutwater 4.10.2010, 07:28 | ||
Для случая, когда заведомо известно, что строка состоит из символов [0-9]
|
| Автор: Игорь1024 4.10.2010, 08:01 |
| я пробовал так, только без вычитания нуля. {сейчас всё работает} Можете объяснить смысл этой операции? |
| Автор: azesmcar 4.10.2010, 08:11 |
в строке числа хранятся как символы, а хранение символа это всего лишь хранение его кода. Например код символа '0' = 48 код символа '1' = 49 код символа '2' = 50 код символа '3' = 51 ... и так далее т.е. в строке ("231") на самом деле храниться массив из чисел '2', '3', '1' а это 50, 51, 49 вычитая '0' (т.е. 48) мы получаем реальное число |
| Автор: Игорь1024 4.10.2010, 08:47 |
| cutwater, azesmcar, спасибо за помощь. |