Проверка на выход за пределы строки в цикле - C#
Формулировка задачи:
Здраствуйте, подскажите как в таком коде сделать проверку на выход за пределы строки?
Этот код не работает. Получаем ошибку System.IndexOutOfRangeException: Индекс находился вне границ массива.
at в System.String.get_Chars(Int32 index)
at в StrInStr.MainClass.checkStr(String strT, String strS) в C:\Users\Евгений\Documents\Projects\StrInStr\StrInStr\Program.cs:строка 16
at в StrInStr.MainClass.Main(String[] args) в C:\Users\Евгений\Documents\Projects\StrInStr\StrInStr\Program.cs:строка 39
Данная программа производит поиск вхождения подстроки strS в строку strT при условии что '?' может быть заменен на произвольный символ.
Листинг программы
- using System;
- namespace StrInStr
- {
- class MainClass
- {
- public static string checkStr(string strT, string strS)
- {
- int countTrue = 0;
- for (int i = 0; i < strT.Length; i++)
- {
- countTrue = 0;
- for (int j = 0; j < strS.Length; j++)
- {
- if ((i + j) > strT.Length) return "NO";
- if (strS[i] == strT[i + j] || strT[i + j] == '?') countTrue++;
- if (countTrue == strS.Length) return "YES";
- }
- }
- return "NO";
- }
- public static void Main(string[] args)
- {
- string strT = Console.ReadLine();
- string strS = Console.ReadLine();
- Console.WriteLine(checkStr(strT, strS));
- Console.ReadKey();
- }
- }
- }
Листинг программы
- if ((i + j) > strT.Length) return "NO";
Решение задачи: «Проверка на выход за пределы строки в цикле»
textual
Листинг программы
- if (strS[i] == strT[i + j] || strT[i + j] == '?') countTrue++;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д