Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Ed_Os
0 / 0 / 0
Регистрация: 02.08.2014
Сообщений: 90
#1

Перевод из String в long long - C++

15.08.2014, 22:19. Просмотров 1172. Ответов 12
Метки нет (Все метки)

Мне нужна функция для перевода из String в long long.Функция atoi(const char* str) работает только с констатным масивом символов а мне нужен именно string(переменный).Сам C++ учу недавно в паскале с этом всё очень просто одна команда,а тут целая непонятная история...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2014, 22:19     Перевод из String в long long
Посмотрите здесь:
C++ Не понятный undefined reference to `unsigned long long f<unsigned long long, void>
C++ Перевод long double в string
Нюансы синтаксиса: что означает запись typedef long long i64 ? C++
Тип long long и его ввод\вывод с использованием scanf\printf C++
C++ Возведение в степень по модулю для чисел близких к max long long
C++ Быстрое вычисление наибольшего общего делителя для unsigned long long int
Работа с unsigned long long int на 32-битных системах C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
774 / 707 / 129
Регистрация: 27.07.2012
Сообщений: 2,026
Завершенные тесты: 3
15.08.2014, 22:22     Перевод из String в long long #2
Цитата Сообщение от Ed_Os Посмотреть сообщение
Функция atoi(const char* str) работает только с констатным масивом символов а мне нужен именно string(переменный)
Покажи код, где это у тебя не работает.
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
15.08.2014, 22:25     Перевод из String в long long #3
Цитата Сообщение от Ed_Os Посмотреть сообщение
нужна функция для перевода из String в long long
C++
1
2
3
std::atoll(str.c_str())
std::strtoll(str.c_str(), 0, 10)
std::stoll(str)
Ed_Os
0 / 0 / 0
Регистрация: 02.08.2014
Сообщений: 90
15.08.2014, 22:35  [ТС]     Перевод из String в long long #4
Цитата Сообщение от gray_fox Посмотреть сообщение
C++
1
2
3
std::atoll(str.c_str())
std::strtoll(str.c_str(), 0, 10)
std::stoll(str)
Можете розьенить пожалуйста первую строку полностью

Добавлено через 4 минуты
Цитата Сообщение от John Prick Посмотреть сообщение
Покажи код, где это у тебя не работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string s,buffer;
    cin>>s;
    long long begin,end,tbegin,tend;;
    int max_length(0),s_length(s.length());
    for(int val_len=1;val_len<=s_length;val_len++)
     for(int pos=1;pos<=s_length;pos++)
            buffer=s.substr(pos,val_len);               
             tbegin=atoll(buffer);//эта строка
             
      
    system("PAUSE");
    return 0;
}
Это если что недаписаный код в оладочном режиме (вообщем пишу и по строке проверяю)
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
15.08.2014, 22:36     Перевод из String в long long #5
Цитата Сообщение от Ed_Os Посмотреть сообщение
Можете розьенить пожалуйста первую строку полностью
atoll (как и все ato*) принимает char const*. Метод string::c_str возвращает char const*.
John Prick
774 / 707 / 129
Регистрация: 27.07.2012
Сообщений: 2,026
Завершенные тесты: 3
15.08.2014, 22:38     Перевод из String в long long #6
C++
1
tbegin=atoll(buffer.c_str());//эта строка
string - это класс. В С++ нет специального типа "строка", есть либо массив символов, либо что-то по-умнее, как например, класс std::string, который ты используешь. Чтобы из него получить массив символов, который как раз и требует функция atoi, atoll и т.д., используется метод c_str().
Ed_Os
0 / 0 / 0
Регистрация: 02.08.2014
Сообщений: 90
15.08.2014, 22:49  [ТС]     Перевод из String в long long #7
Цитата Сообщение от John Prick Посмотреть сообщение
string - это класс. В С++ нет специального типа "строка", есть либо массив символов, либо что-то по-умнее, как например, класс std::string, который ты используешь. Чтобы из него получить массив символов, который как раз и требует функция atoi, atoll и т.д., используется метод c_str().
так спасибо в wxDevC++ робит...только вот в Visual C++ 2010 нет ошибка:
c:\users\ed\documents\visual studio 2010\projects\ter\ter\main.cpp(11): error C3861: atoll: идентификатор не найден
Подскажите пожалуйста в чём проблема?
John Prick
774 / 707 / 129
Регистрация: 27.07.2012
Сообщений: 2,026
Завершенные тесты: 3
15.08.2014, 22:53     Перевод из String в long long #8
Цитата Сообщение от Ed_Os Посмотреть сообщение
c:\users\ed\documents\visual studio 2010\projects\ter\ter\main.cpp(11): error C3861: atoll: идентификатор не найден
Подскажите пожалуйста в чём проблема?
Не подключил файл с объявлением этой функции. Я не знаю, где она объявлена. Попробуй в начале написать:
C++
1
#include <stdlib.h>
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
15.08.2014, 22:55     Перевод из String в long long #9
Цитата Сообщение от Ed_Os Посмотреть сообщение
только вот в Visual C++ 2010 нет ошибка:
Её там может и не быть, тогда ближайший вариант наверное atol (возвращает long)
Ed_Os
0 / 0 / 0
Регистрация: 02.08.2014
Сообщений: 90
15.08.2014, 23:01  [ТС]     Перевод из String в long long #10
Последний вопрос...Visual C++ 2010 поддерживает <cstdlib>? Просто как я понял atoll()находится там?
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
15.08.2014, 23:05     Перевод из String в long long #11
Цитата Сообщение от Ed_Os Посмотреть сообщение
Последний вопрос...Visual C++ 2010 поддерживает <cstdlib>? Просто как я понял atoll()находится там?
Да, вот только в стандарт языка atoll добавили относительно недавно, так что в VS она может быть просто не реализована.
John Prick
774 / 707 / 129
Регистрация: 27.07.2012
Сообщений: 2,026
Завершенные тесты: 3
15.08.2014, 23:05     Перевод из String в long long #12
Цитата Сообщение от Ed_Os Посмотреть сообщение
Последний вопрос...Visual C++ 2010 поддерживает <cstdlib>?
Ну запустите поиск этого файла в папке со студией. Если есть, значит есть.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2014, 00:42     Перевод из String в long long
Еще ссылки по теме:
C++ Как преобразовать const char * в long в С++, 0xE0E040BF в long
Максимальная и минимальная цифра числа long long int C++
C++ Подскажите что за типа такой long long int?
Написать функцию, которая принимает два параметра типа unsigned long long и выводит их на экран C++
C++ Как VC6 заставить понимать long long ?

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

Или воспользуйтесь поиском по форуму:
BlackIce
310 / 172 / 64
Регистрация: 18.01.2014
Сообщений: 387
16.08.2014, 00:42     Перевод из String в long long #13
Цитата Сообщение от Ed_Os Посмотреть сообщение
Visual C++ 2010 поддерживает <cstdlib>?
Да.

Цитата Сообщение от Ed_Os Посмотреть сообщение
Просто как я понял atoll()находится там?
Находится, но начиная с VS2012.

Как вариант:

C++
1
2
3
4
5
6
7
#include <sstream>
...
    std::string str = "1234567890000";
    
    long long val;
    std::istringstream(str) >> val;
...
Yandex
Объявления
16.08.2014, 00:42     Перевод из String в long long
Ответ Создать тему
Опции темы

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