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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Из стринг в int ? 
:(
    Опции темы
Demetry
Дата 29.4.2003, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А как перевести из стринга в int ?
Пробовал из стринга в чар а потом из чара в инт, но окакзалось что я и в чар нормально перевести не могу и следовательно в инт совсем не те числа получаются.
Помогите.

PM MAIL   Вверх
Baa
Дата 29.4.2003, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

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



На форуме уже был такой вопрос... поискать лень чтоли?
itoa
atoi
А вообще, можно и свою написать...
з.ы. стринг нельзя перевести в чар... потому как стринг - это много чар. =)


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Nastya
Дата 29.4.2003, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

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



а что ты хочешь получить. К предложению baa добавлю sscanf(.....)


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
kruchinin
Дата 30.4.2003, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Совет:
не используй каких-то заумных ф-ций все и так элементарно!

Например у тебя есть стринг:

char *s;
//в котором записано число '"1234"

int i=0;
int j=0;

do
{
j++;
if (j==strlen(s)) break;
i*=10;
i+=s[j-1]-48;
}while(true);

PM MAIL   Вверх
Step
Дата 30.4.2003, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



kruchinin велосипед изобретаеш...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
fk_
Дата 30.4.2003, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хех, а я то думал что string С++ - это массив char smile.gif


kruchinin: можно и проще smile.gif ща попробую smile.gif
PM MAIL WWW ICQ   Вверх
kruchinin
Дата 1.5.2003, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можно конечно проще, но не всегда быстрее и (Главное!) некоторые функции из библиотеки stdlib.h в некоторых ситуациях глючат.
PM MAIL   Вверх
DENNN
Дата 1.5.2003, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

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



kruchinin зачем структуроное программирование нужно знаешь? smile.gif А бибилиотечные функции? hehe.gif

Это сообщение отредактировал(а) DENNN - 1.5.2003, 18:41
PM ICQ   Вверх
Artiom
Дата 2.5.2003, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

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



Отрывок из MSDN
Цитата

atoi, _atoi64  Convert string to int
atol                Convert string to long



--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Torin
Дата 5.5.2003, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Почему бы тебе не попробовать StrToInt().
PM MAIL   Вверх
aMiGo!
Дата 5.5.2003, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Torin, функция StrToInt() постовляется только с Builder'ом, а в стандартную библиотеку С++ она не входит, а оптималные для этого функции типа atoi и atoi64.

З.Ы. а картинку зря поменял, та была лучше...
--------------------
With the best regards, Anton
PM MAIL   Вверх
Unregistered
Дата 5.5.2003, 19:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











sscanf: performs formatted input from a string
int sscanf(const char *buffer, const char *format, ...);
Prototype in stdio.h
Returns the number of input fields successfully scanned, converted, and stored.
If sscanf attempts to read past end of buffer, the return value is EOF.
See also scanf fscanf
  Вверх
RAN
Дата 5.5.2003, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

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



kruchinin, а чем твой код круче atoi? Тем более есле говорить о скорости. Незачем каждый раз strlen вызывать и использовать индексы в массиве. Если и писать самому, то наверно, что-то вроде:

char *s;
//в котором записано число '"1234"

char *c = s; //указатель на символ строки
register int i = 0;
while© {
i *= 10;
i += (int)(*c - '0');
c++;
}

Кстати, этот код не понимает отрицательных чисел, а это минус (простите за каламбур). С минусом:

char *s;
//в котором записано число '"1234"

char *c = s; //указатель на символ строки
register int i = 0;
if(*c == '-') c++;
while© {
i *= 10;
i += (int)(*c - '0');
c++;
}
if(*s == '-') i = -i;

Результат будет неожиданным, если кроме цифр будет ещё что-то, надо добавлять проверку в while (простите увлёкся)...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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