Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6458
Последний выпуск: 19.06.2015

Как преобразовать элемент символьного массива в целое число?

78K
21 мая 2012 года
svitozar
11 / / 21.05.2012
Я пытался преобразовать в int так : atoi ( M ) .
получил ошибку : atoi: невозможно преобразовать параметр 1 из 'char' в 'const char *'
как сделать это правильно?
315
21 мая 2012 года
sadovoya
757 / / 19.11.2005
Код:
#include <iostream>
#include <cstdlib> // НУЖНО

using namespace std;

int main()
{
    char intStr[] = "-10345";
    cout << atoi(intStr) << endl;

    char long_int_str[] = "200000000";
    cout << atol(long_int_str) << endl;

    char doubleStr[] = "-125.44e-232";
    cout << atof(doubleStr) << endl;



    return 0;
}
315
21 мая 2012 года
sadovoya
757 / / 19.11.2005
А из char в char* по такой примерно схеме:

char M = '5';
char MM[] = {M, '\0'};
cout << atoi(MM) << endl;
---------------------
Нет, должен себя поправить, гораздо проще так:
cout << atoi(&M) << endl;
78K
21 мая 2012 года
svitozar
11 / / 21.05.2012
а если так :
char* M=new char[n];
M[0]='a';
что написать вместо
cout<<atoi(M[0]);
?
315
21 мая 2012 года
sadovoya
757 / / 19.11.2005
char* M=new char[5];
M[0]='6';//M[1]='\0';
cout<<atoi(M) << endl;
delete M;

Но это для конвертации строковых представлений чисел. А у Вас 'a'. Значит вам надо код буквы что-ли?
78K
21 мая 2012 года
svitozar
11 / / 21.05.2012
да.
315
21 мая 2012 года
sadovoya
757 / / 19.11.2005
 
Код:
char* M = new char('a');
    cout << "Decimal of \'" << M << "\' is " << int(*M) << endl;
    delete M;
78K
21 мая 2012 года
svitozar
11 / / 21.05.2012
а если интересует не только первый элемент?если нужно вывести все?
315
21 мая 2012 года
sadovoya
757 / / 19.11.2005
Тогда в цикле по i = 0; i < n; ++i и вместо *M просто элемент массива M
315
21 мая 2012 года
sadovoya
757 / / 19.11.2005
 
Код:
const int n = 3;
    char* M = new char(n);
    M[0] = 'a'; M[1] = 'b'; M[2] = 'f';
    for (int i = 0; i < n; ++i)
    cout << "Decimal of \'" << M[i] << "\' is " << int(M[]) << endl;
    delete [] M;
315
21 мая 2012 года
sadovoya
757 / / 19.11.2005
cout << "Decimal of \'" << M << "\' is " << int(M) << endl;
315
21 мая 2012 года
sadovoya
757 / / 19.11.2005
Не пойму почему но при вставке кода индекс i пропадает - надо M-итый
78K
21 мая 2012 года
svitozar
11 / / 21.05.2012
спасибо большое

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог