Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
28 / 28 / 11
Регистрация: 08.08.2011
Сообщений: 1,173

Поиск вхождения в строку, начиная с такой-то точки

24.03.2015, 17:21. Показов 8067. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Есть строки X и Y. В строке X могут быть кавычки: ". Нужно определить, есть ли в строке X подстрока Y сразу после первой кавычки.

Как сделать это максимально быстро? Регулярные выражения не предлагать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2015, 17:21
Ответы с готовыми решениями:

Поиск решения, нахождение максимума начиная с точки минимума
Стоит задача, найти минимум функции двух переменных, использую "поиск решения". Сделал, все работает, но есть одно но! Нахожу минимум...

Поиск N-го вхождения подстройки в строку
Реализовать вариант функции поиска N-го вхождения подстройки Subs в строку S.

Поиск вхождения строки в строку
Здравствуйте! Помогите пожалуйста: есть в richTextBox1 следущий текст: "fck,qwe,nero,www". в textbox я вписал например "fck"...

31
48 / 48 / 10
Регистрация: 22.02.2012
Сообщений: 137
26.03.2015, 16:24
Студворк — интернет-сервис помощи студентам
Именно)
Цитата Сообщение от Suppir Посмотреть сообщение
сразу после !!!первой!!! кавычки
А у Вас находит и после второй, и после третьей, хотя не должен)

Добавлено через 58 секунд
Цитата Сообщение от ViterAlex Посмотреть сообщение
Не проходит, потому что искомая фраза стоит после второй кавычки
Не проходит потому, что result == true, а должен (как и написано в тесте) false.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
26.03.2015, 17:05
Цитата Сообщение от ViterAlex Посмотреть сообщение
Странно, что никто не вспомнил про регулярку:
Ну как бы эта:
Цитата Сообщение от Suppir Посмотреть сообщение
Регулярные выражения не предлагать.
0
 Аватар для ViterAlex
8953 / 4865 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
26.03.2015, 17:05
Ну тогда похитрее:
C#
1
bool result = Regex.IsMatch(X, @"\A[^""]*""" + Y + ".*\z", RegexOptions.Multiline);
0
28 / 28 / 11
Регистрация: 08.08.2011
Сообщений: 1,173
29.03.2015, 15:37  [ТС]
Друзья!

Регулярными выражениями я сам могу написать. Но получается слишком медленный код.

Еще раз подчеркну: сразу после первой кавычки. То есть совпадение должно быть без отступа символов от первой кавычки. После второй или третьей кавычки - не подходит.
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
30.03.2015, 10:34
Suppir, все предыдущие варианты чем не устраивают?
Вот еще похожий.
C#
1
2
3
4
5
6
7
string str1 = "0123'234'2345'679";
string str2 = "234";
 
if (str1.IndexOf("'" + str2) != -1)
{
  // нашли подстроку
}
Подчеркну! Находит СРАЗУ после первой ковычки. Как в общем то и прошлые варианты.

Добавлено через 1 час 1 минуту
Хотя не, косяк.
Такое должно сработать
C#
1
2
3
4
string str1 = "045'23412'3'23445'2345'679";
string str2 = "234";
if ((str1.IndexOf(str2, str1.IndexOf("'"), str2.Length + 1)) != -1)
    Console.WriteLine("Ура");
1
48 / 48 / 10
Регистрация: 22.02.2012
Сообщений: 137
31.03.2015, 12:58
Цитата Сообщение от tarasalk Посмотреть сообщение
(str1.IndexOf(str2, str1.IndexOf("'"), str2.Length + 1)

Не по теме:

Что-то вы намудрили

0
31.03.2015, 13:30

Не по теме:

Цитата Сообщение от FesS92 Посмотреть сообщение
Что-то вы намудрили
Да норм. Начиная с первой кавычки ищем подстроку, но не дальше чем длина подстроки.

Suppir, у FesS92 тоже рабочий код, зря не взяли.

0
48 / 48 / 10
Регистрация: 22.02.2012
Сообщений: 137
31.03.2015, 14:16
tarasalk, а всё-таки самый адекватный код выглядит примерно так:
C#
1
2
3
4
5
string X = "google123";
string Y = "12";
 
int a = X.IndexOf("\"");
Console.WriteLine(a >= 0 && X.IndexOf("\"" + Y, a, Y.Length + 1) == a  ? "Yes" : "No");
Угадаете, почему?)
0
31.03.2015, 17:23

Не по теме:

Ну....использовать алгоритм например Ахо Корасика будет пореще :)

0
48 / 48 / 10
Регистрация: 22.02.2012
Сообщений: 137
31.03.2015, 17:48
Цитата Сообщение от tarasalk Посмотреть сообщение
Ну....использовать алгоритм например Ахо Корасика будет пореще

Не по теме:

Реще, но не в этой задаче... Тут одна строка, одна подстрока, нужно сказать входит или нет (а не сколько раз каждая подстрока входит в строку). Но алгоритм изучил, спасибо, интересно))



Добавлено через 2 минуты
Цитата Сообщение от FesS92 Посмотреть сообщение
Угадаете, почему?)
Отвечу всё же на свой вопрос)

Цитата Сообщение от Suppir Посмотреть сообщение
есть ли в строке X подстрока Y сразу после первой кавычки.
Потому что все заметили слово "сразу" в описании задания, но не заметили слово "может")
Цитата Сообщение от Suppir Посмотреть сообщение
В строке X могут быть кавычки: ".
Кавычка может быть, а может и не быть))
0
28 / 28 / 11
Регистрация: 08.08.2011
Сообщений: 1,173
21.04.2015, 16:43  [ТС]
Цитата Сообщение от FesS92 Посмотреть сообщение
Ну....использовать алгоритм например Ахо Корасика будет пореще
Кстати, нельзя говорить "Ахо-Корасика" Потому что Маргарет Корасик - это была женщина, ее фамилия не склоняется
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
21.04.2015, 16:52
Suppir, я вам и аватарку подобрал — у вас как раз ее нет
Название: Grammar-Nazi-1613.png
Просмотров: 14

Размер: 3.3 Кб
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.04.2015, 16:52

Поиск позиции вхождения текста в строку
Подскажите функцию или способ (на чистом API): 1) для нахождения номера символа, с которого начинается в заданной строке образец поиска...

Поиск вхождения в строку s заданной фразы
Назначение: поиск вхождения в строку s заданной фразы ( последовательности слов) s1 Помогите пожалуйста ибо в старой теме ответа не нашел...

Поиск последнего вхождения подстроки s1 в строку s
#include <stdio.h> int count_of_substrings(string s, string s1){ int start = 0; int count = 0; int pos = 0; ...

Поиск первого вхождения символа в строку
Процедура Str_scan производит сканирование строки для поиска первого вхождения определенного символа. Входные параметры в ES:DI содержат...

Поиск вхождения в строку искомой последовательности из 2 символов
Поиск вхождения в строку искомой последовательности из 2 символов (вывести координату смещения отклонения поиска строки)


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru