Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Что возвращает oper [] в basic_string

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Что возвращает oper [] в basic_string
Имя
Сообщение << Старые топики   Новые топики >>
Что возвращает oper [] в basic_string - 2009-10-19 21:42:12.223333   
Smelo

Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
проблема в том что не пашет это

string str("12304534");
int res=(int)str[3];

cout <<res; // 48


должен вернуть char, а возвращает непонятно что
Post #: 1
RE: Что возвращает oper [] в basic_string - 2009-10-19 21:58:23.990000   
Lost_boy

Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
тебе и возвращается десятичное значение твоего символа, в данном случае str[3]= 0; по таблице ASCII символ '0' равен десятичному 48
Post #: 2
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:03:12.246666   
Smelo

Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
тогда спрашивается, как мне этот десятичный привести в вид int ноля? =)

для проведения математических операций
Post #: 3
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:08:05.350000   
Lost_boy

Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
ну хотя бы так
string str("12304534"); int res = str[3] - '0'; &nbsp; cout&lt;&lt;res; // будет 0 з.ы. это для чисел подойдет, вообще есть еще функция atoi
Post #: 4
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:12:18.083333   
Smelo

Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
не догнал

вычитаем из char = 3 ноль в десятичной форме(48) и получаем 48?

короче хочу
res+=str[1];
res+=str[2];
res+=str[3];

cout <<res; // было 5
Post #: 5
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:14:24.830000   
Smelo

Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
вижу отредактировал, но всё равно проблемы этой не решает

res+=str[1];
res+=str[2];
res+=str[3];

cout <<res; // было 5

atoi пашет только с const char * а у меня char
Post #: 6
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:14:33.243333   
Lost_boy

Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
Смотри char = 3 это есть 51 в десятичной форме, т.е.  res = str[2] - '0'; равносильно 51 - 48 = 3.
Post #: 7
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:16:46.360000   
Smelo

Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
а, спс большое,
теперь понятно как таблица устроена

но всё равно не очень то красиво
Post #: 8
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:19:51.260000   
Lost_boy

Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
Ты объясни что тебе надо сделать или ты просто тренируешься юзать строки)
З,Ы, Юзай гугл, там ссылок на эту тематику немерено!
Post #: 9
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:35:49.113333   
Smelo

Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
гуглил долго, честно, может не то гуглил?
мне надо сложить все символы в строке до ноля
тренеруюсь в парсинге
Post #: 10
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:39:21.353333   
Lost_boy

Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
1.Переводишь все строку в массив (в твоем случае int) делаешь это в цикле
2. Так же в цикле начинаешь суммировать, но перед суммой проверяешь элемент на равенство нулю, если ноль - выход из цикла.
вот и все.
З.Ы. такие темы создавай в этом топике
Post #: 11
RE: Что возвращает oper [] в basic_string - 2009-10-20 18:42:48.026666   
Smelo

Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
ну тема то как раз про то как перевести в int

а с алгоритмом то тут проблем быть не может
Post #: 12
RE: Что возвращает oper [] в basic_string - 2009-10-20 19:19:27.033333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Нуб ёпт, почитай хоть какие-нибудь книжки по программированию.
int CharToDigit( char c ) { return c - '0'; } ... res = 0; for ( int i = 0; i &lt; strlen( str ); i++ ) res += CharToDigit( str[i] );
Post #: 13
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Что возвращает oper [] в basic_string







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.