Не существует подходящей функции преобразования в "const char*"

Начал переписывать задачу с PascalABC на C++ и столкнулся с ошибкой "не существует подходящей функции преобразования из "std::basic_string<char, std::char_traits, std::allocator>" в "const char *". А так же ошибка с min[i] - "слишком много аргументов функции". Делаю в формах Windows.

for (int i = 0; i < m; ++i) {
                str = lines[a[i]];
                MarshalString(str, str2);
                name[i] = str2.substr(1, str2.find(' ') - 1);
                str2.erase(1, str2.find(' '));
                atoi(str2.substr(1, str2.find(' ') - 1), min[i], z); // Здесь ошибка
            }

Если нужно, могу привести код с Паскаля.


Ответы (1 шт):

Автор решения: Harry

atoi нужна C-строка.

Можно

atoi(str2.substr(1, str2.find(' ') - 1).c_str())

Только вот у вас atoi вызывается с тремя параметрами, в то время как это функция от одного аргумента, и возвращаемое ею значение вы игнорируете.

Но для string лучше воспользоваться функцией stoi. Вот у нее действительно три аргумента :)

→ Ссылка