Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 56, средняя оценка - 4.96
Bars911
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 6
#1

Аналог atoi в С++ - C++

15.07.2011, 21:52. Просмотров 8639. Ответов 22
Метки нет (Все метки)

Вопрос возможно глупый, но если кто просветит меня буду очень благодарен))
как в С++ реализован перевод символьной строки(char или string) в int?
только начал изучать С++, знаю что в С за это отвечает atoi,
а вот в С++ ненашел(((
задача просто поставленна так, что использовать функции и библиотеки из С или STL C++ нежелательно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2011, 21:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Аналог atoi в С++ (C++):

atoi - C++
short x char chm; ...цикл, присваиваем chm значение... x = atoi (chm); if ( x < 32768) { cout <<...

atoi() - C++
программа элементарная - надо считать строку "x=int1+int2" где int1 и int2 не известные зарание значения int; надо вывести int1+int2; не...

Atoi, atof. - C++
Подскажите пожалуйста, как с помощью функций atoi, atof, проверить, является ли данное число действительным? Добавлено через 21 минуту...

atof и atoi - C++
Помогите пожалуйста, разобратся что такое atof, atoi, как работает, что делает?

atoi не работает! - C++
#include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; int main(){ int K, N, t1_1, t2_2; int p; ...

Результат atoi - C++
привет необходимо написать функцию, позволяющую проверить является ли содержимое строки, содержащей только цифры и/или знак + или - на...

22
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
15.07.2011, 23:31 #16
Да да, она есть, но странно почему компилятор ее не видит.
0
grizlik78
Эксперт С++
1967 / 1460 / 120
Регистрация: 29.05.2011
Сообщений: 3,022
16.07.2011, 00:11 #17
А да, в MinGW попробовал (у меня 4.5.2) тоже что-то дурит. А в линуксе вот нормально всё.

Добавлено через 35 минут
Вот она, настоящая причина:
Код
D:\Temp\test\p>gcc -x c++ -std=c++0x -E -dU stoi.cpp | find "BROKEN"
#define _GLIBCXX_HAVE_BROKEN_VSWPRINTF 1
Добавлено через 1 минуту
Bash
1
2
home /tmp $ gcc -x c++ -std=c++0x -E -dU stoi.cpp | grep BROKEN
#undef _GLIBCXX_HAVE_BROKEN_VSWPRINTF
2
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
16.07.2011, 00:16 #18
Пользуйте boost::lexical_cast - проще и функционалнее.
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,850
16.07.2011, 05:14 #19
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cstdio>
#include <string>
 
int main(){
    std::string str("123");
    int i;
    sscanf(str.c_str(), "%d", &i);
    std::cout << i << std::endl;
    return 0;
}
гы
1
Bars911
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 6
16.07.2011, 14:50  [ТС] #20
Спасибо всем отозвавшимся))))
diagon, твой вариант:

C++
1
2
3
4
5
6
1  size_t _atoi(const char * str){
2  size_t res = 0;
3   for (; *str; res += *str++ - '0')
4      res *= 10;
5   return res;
}

пожалуй для меня наиболее оптималный,
вопрос только, это хэадер cstring или cstdlib?
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
16.07.2011, 15:30 #21
Bars911, тут вообще никакого хидера не надо, ни одной библиотечной функции не используется, только конструкции языка.
0
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
16.07.2011, 15:53 #22
silent_1991, разве что <cstddef> (<stddef.h>) подключить, там std::size_t (size_t) определен.
1
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
16.07.2011, 15:55 #23
CyBOSSeR, да, постоянно забываю, что такое иногда нужно. И gcc, и cl, к которым я привык, его так понимают.
0
16.07.2011, 15:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2011, 15:55
Привет! Вот еще темы с ответами:

функция atoi - C++
Функции атои по идее должна превращать строку в число, но почему то я не могу заставить ее работать коректно, в чем ошибка? #include...

Проскользывает функция atoi - C++
Дана строка, в ней через пробелы расположены числа. Вывести эти числа в порядке возрастания. Вот код, но проблема в том, что на копировании...

Не работает функция atoi - C++
Здравствуйте! Прошу помочь. Даю код программы, что не так с функцией atoi ? Программа рисует кривую Гильберта, i - порядок кривой, мне...

Функции atoi и atof - C++
Здравствуйте, пишу парсер для файла определенного формата (фактически лексический и синтаксический анализаторы), так вот среди данных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru