#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;
}
Как преобразовать элемент символьного массива в целое число?
получил ошибку : atoi: невозможно преобразовать параметр 1 из 'char' в 'const char *'
как сделать это правильно?
char M = '5';
char MM[] = {M, '\0'};
cout << atoi(MM) << endl;
---------------------
Нет, должен себя поправить, гораздо проще так:
cout << atoi(&M) << endl;
char* M=new char[n];
M[0]='a';
что написать вместо
cout<<atoi(M[0]);
?
M[0]='6';//M[1]='\0';
cout<<atoi(M) << endl;
delete M;
Но это для конвертации строковых представлений чисел. А у Вас 'a'. Значит вам надо код буквы что-ли?
да.
Код:
char* M = new char('a');
cout << "Decimal of \'" << M << "\' is " << int(*M) << endl;
delete M;
cout << "Decimal of \'" << M << "\' is " << int(*M) << endl;
delete M;
а если интересует не только первый элемент?если нужно вывести все?
Тогда в цикле по i = 0; i < n; ++i и вместо *M просто элемент массива M
Код:
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;
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;
cout << "Decimal of \'" << M << "\' is " << int(M) << endl;
Не пойму почему но при вставке кода индекс i пропадает - надо M-итый
спасибо большое