Объясните работу куска кода с IndexOf - C#

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

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

Здравствуйте. Объясните, как работает кусок кода. Заранее спасибо.
while (cur != -1)
             {
                 cur = stroka.IndexOf(podstroka, cur); 
                 if (cur != -1)
                 {
                     cur++;
                     count++; 
                 }
             }
Как работает indexof мне понятно, а связанное с cur не очень.
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++;  //увеличиваем счетчик вхождений
    }
}

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


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

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

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