Задание простое:
Дана строка символов. Определить, есть ли в строке слова-палиндромы. Если есть, то отметить каждое слово символом % в начале и в конце слова (например, %топот% ).
Дело в том, что не могу понять, как сделать это для нескольких слов в строке.
Вот код, пока только для одного слова в строке.
private: System::Void btn_pal_Click(System::Object^ sender, System::EventArgs^ e) {
if (cb_1->Checked == false && cb_2->Checked == false) {
MessageBox::Show("Выберите способ вывода.", "Ошибка", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
return;
}
String^ str = tb_words->Text;
String^ str2 = str;
array <wchar_t>^ mass = tb_words->Text->ToCharArray();
int n = tb_words->Text->Length;
bool palindrom = true;
for (int r = 0; r < mass->Length; r++) {
for (int i = 0; i < (n / 2); i++)
{
if (mass[i] != mass[n - i - 1])
{
palindrom = false;
break;
}
}
}
if (palindrom) {
if ((cb_1->Checked == true) && (cb_2->Checked == false))
{
tb_words->Text = "%" + str + "%";
str = str2;
}
if ((cb_2->Checked == true) && (cb_1->Checked == false)) {
lb_pal->Items->Add("%" + str + "%");
str = str2;
}
if ((cb_1->Checked == true) && (cb_2->Checked == true)) {
tb_words->Text = "%" + str + "%";
lb_pal->Items->Add("%" + str + "%");
str = str2;
}
btn_pal->Enabled = false;
}
}
Подскажите, пожалуйста, как выполнить задачу для всей строки.