когда я передаю переменную string
в приведенном ниже коде, g++ выдает ошибку:
невозможно преобразовать ‘std::__cxx11::string {aka std::__cxx11::basic_string}’ в ‘const char*’ для аргумента ‘1’ в ‘int atoi(const char*)’
Мой код:
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
string a = "10";
int b = atoi(a);
cout<<b<<"\n";
return 0;
}
Но если я изменю код на:
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
char a[3] = "10";
int b = atoi(a);
cout<<b<<"\n";
return 0;
}
Он работает совершенно нормально.
Пожалуйста, объясните, почему string
не работает. Есть ли разница между string a
и char a[]
?
std::string
, а другой нет. - person Jonathan Wakely   schedule 14.05.2016