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