Длина наименьшего слова в строке - C#

Узнай цену своей работы

Формулировка задачи:

Добрый вечер. Здесь на форуме нашел вот такой код. Он для задачи: "Даны натуральное число n, символы S1,...........,Sn. группы символом, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Найти длину самого короткого слова". Так как я совсем-совсем новичок, то мне этот код не очень понятен. И такие вопросы: 1) как в данном случае заменить foreach на for? 2) непонятны строки: "string[] words = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); int max = words[0].Length, min = words[0].Length; " На что их можно заменить? хотелось бы как можно проще и понятней написать код, пускай даже будет много строк. хочется самому вникнуть в программу, а не тупо списать. Спасибо.
using System;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите строку:");
            string line = Console.ReadLine();
            string[] words = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            int max = words[0].Length, min = words[0].Length;
            foreach(string str in words)
            {
                if (str.Length > max) max = str.Length;
                if (str.Length < min) min = str.Length;
            }
            Console.WriteLine("Длина самого длинного слова: " + max);
            Console.WriteLine("Длина самого короткого слова: " + min);
            Console.ReadLine();
        }
    }
}

Решение задачи: «Длина наименьшего слова в строке»

textual
Листинг программы
    class Program
    {
        static void Main(string[] args)
        {
 
            Console.WriteLine("Введите строку:");
            string line = Console.ReadLine();
            var tokenizer = new Tokenizer(line);
            var minlen = int.MaxValue;
            var maxlen = 0;
            var str = tokenizer.GetToken();
 
            while (str != String.Empty)
            {
                if (str.Length > maxlen) maxlen = str.Length;
                if (str.Length < minlen) minlen = str.Length;
                str = tokenizer.GetToken();
            }
 
            Console.WriteLine("Длина самого длинного слова: " + maxlen);
            Console.WriteLine("Длина самого короткого слова: " + minlen);
            Console.ReadKey();
 
        }
    }
 
    public class Tokenizer
    {
        private string _str;
        private int _pos;
 
        public Tokenizer(string str)
        {
            _str = str;
            _pos = 0;
        }
 
        public string GetToken()
        {
            if (_pos == _str.Length)
            {
                return String.Empty;
            }
 
            while (_pos < _str.Length && _str[_pos] == ' ')
            {
                _pos++;
            }
 
            if (_pos == _str.Length)
            {
                return String.Empty;
            }
 
            var token = String.Empty;
            while (_pos < _str.Length && _str[_pos] != ' ')
            {
                token += _str[_pos];
                _pos++;
            }
 
            return token;
 
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы