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