Что возвращает oper [] в basic_string
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Что возвращает 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, а возвращает непонятно что
|
|
|
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
|
|
|
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:03:12.246666
|
|
|
Smelo
Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
|
тогда спрашивается, как мне этот десятичный привести в вид int ноля? =) для проведения математических операций
|
|
|
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';
cout<<res; // будет 0
з.ы. это для чисел подойдет, вообще есть еще функция atoi
|
|
|
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
|
|
|
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
|
|
|
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.
|
|
|
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:16:46.360000
|
|
|
Smelo
Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
|
а, спс большое, теперь понятно как таблица устроена но всё равно не очень то красиво
|
|
|
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:19:51.260000
|
|
|
Lost_boy
Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
|
Ты объясни что тебе надо сделать или ты просто тренируешься юзать строки) З,Ы, Юзай гугл, там ссылок на эту тематику немерено!
|
|
|
RE: Что возвращает oper [] в basic_string - 2009-10-19 22:35:49.113333
|
|
|
Smelo
Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
|
гуглил долго, честно, может не то гуглил? мне надо сложить все символы в строке до ноля тренеруюсь в парсинге
|
|
|
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. Так же в цикле начинаешь суммировать, но перед суммой проверяешь элемент на равенство нулю, если ноль - выход из цикла. вот и все. З.Ы. такие темы создавай в этом топике
|
|
|
RE: Что возвращает oper [] в basic_string - 2009-10-20 18:42:48.026666
|
|
|
Smelo
Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
|
ну тема то как раз про то как перевести в int а с алгоритмом то тут проблем быть не может
|
|
|
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 < strlen( str ); i++ )
res += CharToDigit( str[i] );
|
|
|
|
|