Ошибка: неверное преобразование из ‘char’ в ‘const char *’

Я хочу сделать функцию, которая может возвращать две новые строки, которые являются композицией старой, но я получил ошибку выше.

string constru(string num, int pos_be, int pos_end)
{
string f_num="";
string s_num="";
f_num.append(num.at(pos_be));
f_num.append(num.at(pos_end));
num.erase(pos_be);
num.erase(pos_end);
for(int i=0; i<num.size();i++)
{
s_num.append(num.at(i));
}
return f_num,s_num;
}

Ошибка находится в строке f_num.append (num.at (pos_be)), а также в других строках, которые я использовал, добавляются со строкой. Кто-нибудь хочет знать, что здесь пошло не так?

0

Решение

Проблема здесь в том, что функция at возвращает символ, а не строку. Но функция добавления поддерживает строку. Итак, вы получите эту ошибку. Перед добавлением преобразуйте символ в строку.

f_num.append(std::string(num.at(pos_be)));
f_num.append(std::string(num.at(pos_end)));
1

Другие решения

f_num.append(std::string(num.at(pos_be)));
f_num.append(std::string(num.at(pos_end)));
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector