Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Alexandr-
0 / 0 / 2
Регистрация: 15.09.2012
Сообщений: 78
1

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

11.12.2015, 18:48. Просмотров 708. Ответов 8
Метки нет (Все метки)

Здравствуйте. Объясните, как работает кусок кода. Заранее спасибо.

C#
1
2
3
4
5
6
7
8
9
while (cur != -1)
             {
                 cur = stroka.IndexOf(podstroka, cur); 
                 if (cur != -1)
                 {
                     cur++;
                     count++; 
                 }
             }
Как работает indexof мне понятно, а связанное с cur не очень.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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();
        }
    }
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2015, 18:48
Ответы с готовыми решениями:

Объясните, в чем смысл данного куска кода?
#ifndef WIDGET_H #define WIDGET_H #include &lt;QWidget&gt; #include &lt;QStandardItemModel&gt; #include...

Объясните работу кода
Здравствуйте, не могу понять работу следующего кода: #include &lt;iostream&gt; using namespace std; ...

объясните работу кода
&lt;?php ## Замена по шаблону. $text = htmlspecialchars(file_get_contents(__FILE__)); $html =...

Объясните работу кода
изучаю opengl по данному уроку http://www.learnopengl.com/#!Lighting/Colors проблема с освещением....

8
Volrajas
Заблокирован
11.12.2015, 18:58 2
Цитата Сообщение от Alexandr- Посмотреть сообщение
Как работает indexof мне понятно, а связанное с cur не очень.
походу не понятно раз задаешь такие вопросы: IndexOf возвращает -1 если подстрока не найдена
0
eJkeee
5 / 5 / 1
Регистрация: 01.05.2014
Сообщений: 33
11.12.2015, 18:59 3
cur это как не странно
C#
1
 int cur = 0;// текущее положен
0
Даценд
Модератор
Эксперт .NET
5339 / 4498 / 2883
Регистрация: 20.04.2015
Сообщений: 8,145
11.12.2015, 19:03 4
C#
1
2
3
4
5
6
7
8
9
while (cur != -1) //пока IndexOf не вернет -1
{
    cur = stroka.IndexOf(podstroka, cur); //ищем индекс вхождения podstroka в stroka, начиная с символа с индексом cur
    if (cur != -1) //если нашли
    {
        cur++; //поиск продолжим со следующего по индексу символа, чтобы не искать там, где уже искали
        count++;  //увеличиваем счетчик вхождений
    }
}
0
hamin
839 / 522 / 284
Регистрация: 21.11.2012
Сообщений: 1,481
11.12.2015, 19:05 5
eJkeee,

есть очень хорошая штука, называется отладка.. запусти программу и посмотри для чего она
0
eJkeee
5 / 5 / 1
Регистрация: 01.05.2014
Сообщений: 33
11.12.2015, 19:07 6
эм, а для чего, если тут и так всё видно
0
Alexandr-
0 / 0 / 2
Регистрация: 15.09.2012
Сообщений: 78
11.12.2015, 19:50  [ТС] 7
А зачем cur присваивать stroka.IndexOf(podstroka, cur);
0
Даценд
Модератор
Эксперт .NET
5339 / 4498 / 2883
Регистрация: 20.04.2015
Сообщений: 8,145
11.12.2015, 19:53 8
Цитата Сообщение от Alexandr- Посмотреть сообщение
А зачем cur присваивать stroka.IndexOf(podstroka, cur);
Чтобы, во-первых, понять найдена подстрока в строке или нет. А во-вторых, узнать с какого индекса продолжать поиск.
0
eJkeee
5 / 5 / 1
Регистрация: 01.05.2014
Сообщений: 33
11.12.2015, 19:55 9
где присваивается, тут про IndexOf популярно рассказано с пример, и поймёшь для чего cur там
0
11.12.2015, 19:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2015, 19:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Объясните работу кода
&lt;?php ## Сериализация объекта класса user // Подключаем сериализацию класса ...

Объясните работу кода
&lt;?php ## Пример второй. // Найти в тексте адрес E-mail. \S означает &quot;не пробел&quot;, а + - //...

Объясните работу кода
Вот прога для записи номера числа в последовательности Фибоначчи. Вопрос в том, что я не могу...

Объясните работу кода
Объясните пожалуйста некоторые моменты в работе кода. А то нужно подобное провернуть на С# require...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.