Удалить слова с нечетными номерами и перевернуть слова с четными номерами - C#
Формулировка задачи:
Здравствуйте. У меня возникла проблема в следующем задании:
Отредактировать заданное предложение, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами.
Пример:
Ввод: 12345shown#%765 qwerty0228michaels@
Вывод: ytrewq
Вот фрагмент "программы":
Проблема:
В скриншоте видно, что программа удаляет первые 3 символа (delete_space), которые не являются буквами, а также удаление нечетного слова состоящего из 4 символов (4 раза вывел if_del )
Почему же программа не работает дальше?
byte chet = 1; // Эта переменная будет отвечать за определение четного/нечетного слова.
int j = 1;
String s = "", outstr = "", vsp = ""; // 2 последние переменные для обезьяньего вывода перевернутого слова
Console.WriteLine("Введите строку");
s = Console.ReadLine();
while (!String.IsNullOrEmpty(s))
{
while (!(Char.IsLetter(s, 0))) // цикл для удаление лишних символов (не букв)
{
Console.WriteLine("delete_space"); // так я пытался определять где застревало выполнение программы
s = s.Remove(0,1);
}
if (chet % 2 == 1)
{
while (Char.IsLetter(s, 0))
{
Console.WriteLine("if_del"); // Еще один индикатор
s = s.Remove(0,1);
}
chet++;
}
else // здесь должно было происходить переворачивание четного слова
{
while (Char.IsLetter(s, 0))
{
Console.WriteLine("reverse"); //
vsp += s[0];
s = s.Remove(0,1);
}
for (j = vsp.Length; j >= 0; j--)
{
outstr += vsp[j];
}
Console.WriteLine(outstr);
outstr = vsp = "";
chet++;
}
Console.ReadLine();Решение задачи: «Удалить слова с нечетными номерами и перевернуть слова с четными номерами»
textual
Листинг программы
string input = "оп опа тра та таа";
var words = input.Split().Where((item, index) => index % 2 == 0).Select(x => string.Join("",x.Reverse()));
string output = string.Join(" ", words);
Console.WriteLine(output);
Console.ReadKey();