Ввод массива строк и поиск среди них строк, содержащих заданный строковый фрагмент - 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 }; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д