Поиск подстроки в строке - C# (191927)
Формулировка задачи:
Подскажите, как организовать поиск подстроки в строке. То есть ввожу,допустим, строку: строка; далее подстроку: ро. И должно выдать ответ, что строка содержит подстроку. Приведенный ниже код работает неверно, т.к. сравнивает первые символы.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Do:
Console.WriteLine("Введите строку");
string stroka = Console.ReadLine();
Console.WriteLine("Введите подстроку");
string podstroka = Console.ReadLine();
if (stroka.Length < podstroka.Length)
Console.WriteLine("строка не может быть меньше подстроки");
else
{
for (int i = 0; i < stroka.Length; i++)
{
for (int j = 0; j < podstroka.Length; j++)
{
if (stroka[i] == podstroka[j])
Console.WriteLine("Строка {0} содержит подстроку {1}", stroka, podstroka);
else
Console.WriteLine("Строка {0} не содержит подстроку {1}", stroka, podstroka);
goto Do;
}
}
}
}
}
}Решение задачи: «Поиск подстроки в строке»
textual
Листинг программы
public List<string> items = new List<string>();
//Поиск
public void Search(ListBox listBox, List<string> AllIt)
{
List<string> find_items = AllIt.FindAll(delegate(string str) { return str.ToLower().Contains(textBox1.Text); });// сохраняем найденные промежуточные значения (пользуясь предикатом)
listBox.DataSource = find_items; //отображаем найденные значения
}
private void MainForm_Load(object sender, EventArgs e)
{
for (int i = 0; i < listBox1.Items.Count; i++)
{
items.Add(listBox1.Items[i].ToString());
}
}
private void textBox1_TextChanged_1(object sender, EventArgs e)
{
Search(listBox1, items);//производим поиск.
}