Задать вопрос

CLR Windows Form — как определить, есть ли в строке слова-палиндромы?

Задание простое:
Дана строка символов. Определить, есть ли в строке слова-палиндромы. Если есть, то отметить каждое слово символом % в начале и в конце слова (например, %топот% ).

Дело в том, что не могу понять, как сделать это для нескольких слов в строке.

Вот код, пока только для одного слова в строке.

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;

			 }
			 
}


Подскажите, пожалуйста, как выполнить задачу для всей строки.
  • Вопрос задан
  • 2999 просмотров
Подписаться 4 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
@AlexP11223
WinForms-то тут причем? Из задания
Дана строка символов. Определить, есть ли в строке слова-палиндромы. 
Если есть, то отметить каждое слово символом % в начале и в конце слова (например, %топот% ).
ясно, что от винформс требуется лишь два сверхсложных действия: прочитать строку из текстбокса и записать результат.
А что уж вы там с чекбоксами с говорящими именами cb_1 и cb_2, и прочими элементами, делаете никому не понятно.
В общем разделяйте нормально задачу на подзадачи и решайте их.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы