Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
6 / 6 / 1
Регистрация: 04.01.2017
Сообщений: 465

Поэлементный просмотр анализ строки

18.04.2017, 23:30. Показов 5564. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, форумчане!

Прошу помочь со следующей проблемой. Есть строка, в которое вводится выражение с консоли. Как в С# создать указатель на данную строку, который бы мог перемещаться по её элементам в зависимости от условия?

Ну например если текущий элемент, на который указывает указатель является пробелом или кавычками, то указатель должен перейти на следующий элемент строки.

Вариант через цикл for, пробегом по всем элементам не подходит, так как проверяться условие и соответственно смещаться указатель будет последовательно в разных функциях (в разных частях программы), начиная с той позиции, на которой он был в предыдущей функции.
Следующий вариант, который я пробовал оказался не верным:
C#
1
2
3
string exp_ptr; //содержет вырожение
string* ptr= exp_ptr; //указатель на текущую позицию в строке
while (string.IsNullOrEmpty(*ptr)) ++ptr;
Прошу помочь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.04.2017, 23:30
Ответы с готовыми решениями:

Просмотр командной строки при отладке
При отладке командная строка всегда находится свернутой, т.е чтобы увидеть что там происходит, после каждого нажатия на F11, приходится...

Просмотр предыдущей строки по номеру из текста
Здравствуйте! Подскажите у меня есть текстовый документ и там очень много строк к примеру: 2412,2,2,2,2,2,0 2413,2,2,2,2,2,0 ...

Оптимальный анализ строки
Добрых времени суток. Имеесть файл вида: Hi slot 1 Hi slot 2 Med slot 1 Med slot 2 Low slot 1 Low slot 2 Нужно...

26
Эксперт .NET
 Аватар для Usaga
14367 / 9468 / 1360
Регистрация: 21.01.2016
Сообщений: 35,726
19.04.2017, 11:03
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Vlad__i__mir Посмотреть сообщение
Вы про него?
Нет. Ещё один заход:

Кликните здесь для просмотра всего текста

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
using System;
using System.Collections.Generic;
using System.IO;
 
namespace NETExperiments
{
    class myClass
    {
        static void FirstFunc(IEnumerator<char> iter)
        {
            Console.WriteLine(iter.Current);
            iter.MoveNext();
            Console.WriteLine(iter.Current);
            iter.MoveNext();
        }
 
        static void SecondFunc(IEnumerator<char> iter)
        {
            Console.WriteLine(iter.Current);
            iter.MoveNext();
            Console.WriteLine(iter.Current);
            iter.MoveNext();
            Console.WriteLine(iter.Current);
            iter.MoveNext();
        }
 
        static void Main(string[] args)
        {
            IEnumerator<char> inum = "Usaga".GetEnumerator();
            inum.MoveNext();
 
            FirstFunc(inum);
            SecondFunc(inum);
 
            Console.WriteLine("done");
            Console.ReadKey();
        }
    }
}
1
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
19.04.2017, 11:20
Vlad__i__mir,
Или как предлагали в начале темы:
Кликните здесь для просмотра всего текста
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
using System;
 
namespace СApp1
{
    class Program
    {
        static int index;
        static void FirstFunc(string s)
        {
            Console.WriteLine(s[index++]);
            Console.WriteLine(s[index++]);
            Console.WriteLine(s[index--]);
            index++;
        }
 
        static void SecondFunc(string s)
        {
            Console.WriteLine(s[index--]);
            Console.WriteLine(s[index--]);
            Console.WriteLine(s[index]);
        }
 
        static void Main(string[] args)
        {
            string d = "Ptr";
            index = 0;
            FirstFunc(d);
            SecondFunc(d);
            Console.ReadKey();
        }
    }
}
1
6 / 6 / 1
Регистрация: 04.01.2017
Сообщений: 465
19.04.2017, 11:42  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Нет. Ещё один заход:
Первый раз сталкиваюсь с IEnumerator, но возможно получится как-то приспособить к моему примеру, хотя сразу не могу понять как. У меня функция вызывает другую функцию внутри себя (пример на предыдущей странице) и указатель на текущую позицию строки глобальная переменная, которая постепенно изменяется смещаясь и она доступна для каждой последующей функции без передачи её через аргументы. А в этом примере она локальная и передаётся в каждую функцию отдельно.

iter.MoveNext(); - это смещение на одну позицию вперёд, если переменная iter будет глобальной, это смещение запомнится? Чтобы в следующей функции просмотр начался уже со следующего элемента, без передачи
Цитата Сообщение от Usaga Посмотреть сообщение
IEnumerator<char> iter
?
Цитата Сообщение от Usaga Посмотреть сообщение
IEnumerator<char> inum = "Usaga".GetEnumerator();
- что за объявление? Это будет char, а не string?
0
Эксперт .NET
 Аватар для Usaga
14367 / 9468 / 1360
Регистрация: 21.01.2016
Сообщений: 35,726
19.04.2017, 11:55
Vlad__i__mir, IEnumerator - итератор, некий объект, который инкапсулирует в себе источник данных и позицию последнего прочитанного элемента. Foreach работает именно с такими штуками.

В данном случае IEnumerator<char> - итератор позволяющий перечислять (перебирать) символы из строки. И конечно же "указатель" на следующий символ находится в объекте доступном через данный интерфейс и увеличивается с каждым вызовом MoveNext().

Добавлено через 2 минуты
Vlad__i__mir, погуглите про итераторы в C#, в сети полно информации об этом, с хорошими (и не очень) примерами. Данный приём-паттерн очень распространён и полезен. Знать его нужно обязательно.
0
6 / 6 / 1
Регистрация: 04.01.2017
Сообщений: 465
19.04.2017, 12:03  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
И конечно же "указатель" на следующий символ находится в объекте доступном через данный интерфейс
В каком конкретно объекте? Что понимается здесь под интерфейсом?
0
Эксперт .NET
 Аватар для Usaga
14367 / 9468 / 1360
Регистрация: 21.01.2016
Сообщений: 35,726
19.04.2017, 12:06
Цитата Сообщение от Vlad__i__mir Посмотреть сообщение
В каком конкретно объекте? Что понимается здесь под интерфейсом?
Долго рассказывать. Будет лучше, если вы почитаете что-нибудь по C#.
0
6 / 6 / 1
Регистрация: 04.01.2017
Сообщений: 465
19.04.2017, 12:19  [ТС]
Usaga, спасибо, буду разбираться!

Добавлено через 3 минуты
Даценд, спасибо! Метод довольно прост и мне должен подойти, буду пробовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.04.2017, 12:19

Анализ введеной на английском строки.
Люди помогите не знаю что делать,не опытный студент дали задание Анализ введеной на английском строки. Необходимая функциональность : ...

Поэлементный вывод строки
Добрый день! Подскажите, пожалуйста, как правильно действовать в такой ситуации: Используя метод вида Editor...

Поэлементный ввод из строки string
Здравствуйте, форумчане. Есть такая проблемка. Имеется файл который состоит из символов и чисел (X456.1) - это координаты. ...

Не могу разобраться с тем, как делать поэлементный перебор символов строки, изменяя значение указателя
Нужно написать такую программу, которая Даны два предложения. Напечатать те слова из первого, которые входят и во второе предложение. При...

Поэлементный ввод списка
Здравствуйте. Стоит задача сделать в Turbo Prolog чтение последовательности символов с последующим анализом(в данном случае анализ не...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru