C#, консоль Дана строка S. Разделить строку ** отдельные слова не используя стандартные...

0 голосов
58 просмотров

C#, консоль
Дана строка S. Разделить строку на отдельные слова не используя стандартные средства для разбиения строк


Информатика (33 баллов) | 58 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Using System;
using System.Collections.Generic;
using System.Linq;

static class Program
{
    static IEnumerable Words(this string Text)
    {
        char[] s = Text.ToCharArray();
        bool isWord = false;
        int left = 0;
            
        for (int i = 0; i < s.Length; i++)
        {
            bool isLetter = Char.IsLetterOrDigit(s[i]);
            if (isLetter && !isWord)
                left = i;

            if (!isLetter && isWord)
            {
                yield return new string(s, left, i - left);
            }

            isWord = isLetter;
        }
    }

    static void Main(string[] args)
    {
        string s = "33 коровы, 33 коровы и стакан чего-то..";

        foreach (var w in s.Words())
            Console.WriteLine("\"{0}\"", w);

        string[] result = s.Words().ToArray(); // так можно получить массив

        Console.ReadKey();
    }
}


Скачать вложение Текст (TXT)
(3.8k баллов)