Длина наименьшего слова в строке - 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; " На что их можно заменить? хотелось бы как можно проще и понятней написать код, пускай даже будет много строк. хочется самому вникнуть в программу, а не тупо списать. Спасибо.
Листинг программы
  1. using System;
  2. namespace ConsoleApplication1
  3. {
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. Console.WriteLine("Введите строку:");
  9. string line = Console.ReadLine();
  10. string[] words = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
  11. int max = words[0].Length, min = words[0].Length;
  12. foreach(string str in words)
  13. {
  14. if (str.Length > max) max = str.Length;
  15. if (str.Length < min) min = str.Length;
  16. }
  17. Console.WriteLine("Длина самого длинного слова: " + max);
  18. Console.WriteLine("Длина самого короткого слова: " + min);
  19. Console.ReadLine();
  20. }
  21. }
  22. }

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

textual
Листинг программы
  1.     class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.  
  6.             Console.WriteLine("Введите строку:");
  7.             string line = Console.ReadLine();
  8.             var tokenizer = new Tokenizer(line);
  9.             var minlen = int.MaxValue;
  10.             var maxlen = 0;
  11.             var str = tokenizer.GetToken();
  12.  
  13.             while (str != String.Empty)
  14.             {
  15.                 if (str.Length > maxlen) maxlen = str.Length;
  16.                 if (str.Length < minlen) minlen = str.Length;
  17.                 str = tokenizer.GetToken();
  18.             }
  19.  
  20.             Console.WriteLine("Длина самого длинного слова: " + maxlen);
  21.             Console.WriteLine("Длина самого короткого слова: " + minlen);
  22.             Console.ReadKey();
  23.  
  24.         }
  25.     }
  26.  
  27.     public class Tokenizer
  28.     {
  29.         private string _str;
  30.         private int _pos;
  31.  
  32.         public Tokenizer(string str)
  33.         {
  34.             _str = str;
  35.             _pos = 0;
  36.         }
  37.  
  38.         public string GetToken()
  39.         {
  40.             if (_pos == _str.Length)
  41.             {
  42.                 return String.Empty;
  43.             }
  44.  
  45.             while (_pos < _str.Length && _str[_pos] == ' ')
  46.             {
  47.                 _pos++;
  48.             }
  49.  
  50.             if (_pos == _str.Length)
  51.             {
  52.                 return String.Empty;
  53.             }
  54.  
  55.             var token = String.Empty;
  56.             while (_pos < _str.Length && _str[_pos] != ' ')
  57.             {
  58.                 token += _str[_pos];
  59.                 _pos++;
  60.             }
  61.  
  62.             return token;
  63.  
  64.         }
  65.     }

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


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

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

8   голосов , оценка 3.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы