Ввод массива строк и поиск среди них строк, содержащих заданный строковый фрагмент - C#

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

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

Необходимо разработать консольное приложение для ввода с клавиатуры массива строк и поиска среди них строк, содержащих заданный строковый фрагмент. Для поиска потребуется использование метода IndexOf(string findThisString) для строковых элементов массива. Метод возвращает позицию начала искомой подстроки от начала строки, либо значение -1 при отсутствии соответствия. Помогите, пожалуйста, написать код на C#

Решение задачи: «Ввод массива строк и поиск среди них строк, содержащих заданный строковый фрагмент»

textual
Листинг программы
class mainclass
{
    static void Main()
    {
        System.Console.WriteLine ("Вводите строки(для выхода введите пустую строку): ");
        string understring = "int";
 
        string str = "e";
        string[] arr = new string[0];
        while (str.Length > 0) {
            str = System.Console.ReadLine ();
            string[] temp = new string[arr.Length + 1];
            for (int j = 0; j < arr.Length; j++) {
                temp [j] = arr [j];
            }
            temp [arr.Length] = str;
 
            arr = new string[temp.Length];
            for (int i = 0; i < temp.Length; i++) {
                arr [i] = temp [i];
            }
        }
 
        for (int i = 0; i < arr.Length; i++) {
            int[] arr2 = someclass.IndexOf(arr[i], understring);
            if(arr2.Length > 1)
            {
                System.Console.WriteLine ("В строке '{0}' имеется подстрока {1}. Начинается в индексе {2}, заканчивается {3}.", arr [i], understring, arr2 [0], arr2 [1]);
            }
        }
    }
 
}
 
class someclass
{
    public static int[] IndexOf(string str, string frag)
    {
        if (str.Length < frag.Length)
            return new int[] { -1 };
 
        int j = 0;
 
        int x = -1, y = -1;
 
        for (int i = 0; i < str.Length; i++) {
            if (str [i] == frag [j]) {
                if (x == -1) {
                    x = i;
                }
                ++j;
                if (j == frag.Length) {
                    y = i;
                    break;
                }
            } else {
                j = 0;
                x = y = -1;
            }
        }
 
        if (x < 0 || y < 0)
            return new int[] { -1 };
        return new int[] { x, y };
    }
}

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


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

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

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