Объясните работу куска кода с IndexOf - C#
Формулировка задачи:
Здравствуйте. Объясните, как работает кусок кода. Заранее спасибо.
Как работает indexof мне понятно, а связанное с cur не очень.
while (cur != -1) { cur = stroka.IndexOf(podstroka, cur); if (cur != -1) { cur++; count++; } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace asd { class Program { static void Main(string[] args) { Console.WriteLine("Введите строку"); string stroka = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("Введите подстроку"); string podstroka = Console.ReadLine(); Console.WriteLine(); if (stroka.Length < podstroka.Length) Console.WriteLine("строка не может быть меньше подстроки"); else { if (stroka.Contains(podstroka)) //строка содержит подстроку Console.WriteLine("Строка {0} содержит подстроку {1}", stroka, podstroka); else Console.WriteLine("Строка {0} не содержит подстроку {1}", stroka, podstroka); } int count = 0;//количество вхождений подстроки в строку int cur = 0;// текущее положение while (cur != -1) { cur = stroka.IndexOf(podstroka, cur); if (cur != -1) { cur++; count++; } } Console.WriteLine(count); Console.ReadKey(); } } }
Решение задачи: «Объясните работу куска кода с IndexOf»
textual
Листинг программы
while (cur != -1) //пока IndexOf не вернет -1 { cur = stroka.IndexOf(podstroka, cur); //ищем индекс вхождения podstroka в stroka, начиная с символа с индексом cur if (cur != -1) //если нашли { cur++; //поиск продолжим со следующего по индексу символа, чтобы не искать там, где уже искали count++; //увеличиваем счетчик вхождений } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д