Длина наименьшего слова в строке - 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;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д