строка — устранение неполадок заменить переполнение стека

У меня есть следующий код в C ++:

void main()
{
string line_1="1 | 2 | 3";
string line_2="4 | 5 | 6";
string line_3="7 | 8 | 9";
int choice;

cin>>choice;

switch (choice)
{
case 1:
replace(line_1.begin(), line_1.end(), "1", "O");
break;
case 2:
replace(line_1.begin(), line_1.end(), "2", "O");
break;
case 3:
replace(line_1.begin(), line_1.end(), "3", "O");
break;
case 4:
replace(line_2.begin(), line_2.end(), "4", "O");
break;
case 5:
replace(line_2.begin(), line_2.end(), "5", "O");
break;
case 6:
replace(line_2.begin(), line_2.end(), "6", "O");
break;
case 7:
replace(line_3.begin(), line_3.end(), "7", "O");
break;
case 8:
replace(line_3.begin(), line_3.end(), "8", "O");
break;
case 9:
replace(line_3.begin(), line_3.end(), "9", "O");
break;
{
default:
break;
}
}
}

Что он делает, так это то, что он изменяет приведенные выше строки на вводы крестики-нолики, в данном случае O. Но когда я запускаю этот код, я получаю эти три ошибки:

ERROR C2446: '==': no conversion from 'const char' to 'int'
ERROR C2040: '==': 'int' differs in levels of indirection from 'const char[2]'
ERROR C2440: '=': cannot convert from 'const char[2]' to 'char'.

Что может быть не так с моим кодом?

0

Решение

Пытаться:

replace(line_1.begin(), line_1.end(), '1', 'O');
3

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

Пытаться:

replace(line_1.begin(), line_1.end(), '1', 'O');
//                                    ^^^^^^^^^

Предложить звонок замещать функция-член от станд :: строка:

line_1.replace(line_1.begin(), line_1.end(), '1', 'O');
1

По вопросам рекламы [email protected]