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