Как найти только первое вхождение строки? - C#
Формулировка задачи:
Подскажите как сделать так, чтобы при смене регистра он брал только первое вхождение word(привет!) и находил его в input(ПеРгамент клеопатры Из египта отраВлЕн Токсином!) и так далее
П нашел 1 поставил пошел дальше на Р, а не каждую подходяющую букву менял
ПеРгамент клеопатры Из египта отраВлЕн Токсином!
10100000000000000000100000000000010100100000001
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApplication4 { class Program { public static char[] word = File.ReadAllText(@"D:\word.txt").ToCharArray(); public static string input = File.ReadAllText(@"D:\input.txt"); static void Main(string[] args) { Console.WriteLine("Шифруемое слово: " + new string(word) + "\n"); input = input.Replace(' ', '_'); input = input.ToLower(); Console.WriteLine("Криптограмма: " + input + "\n"); Console.WriteLine("Ключ криптограммы: "); Crypt(); Console.ReadLine(); } public static void Crypt() { char[] ca = input.ToCharArray(); char outpur; for (int i = 0; i < ca.Length; i++) { outpur = word.Contains(ca[i]) ? '1' : '0'; Console.Write(outpur); } } } }
Решение задачи: «Как найти только первое вхождение строки?»
textual
Листинг программы
static void Main(string[] args) { string word = "привет"; string input = "ПеРгамент клеопатры Из египта отраВлЕн Токсином!"; Console.WriteLine("Шифруемое слово: " + word + "\n"); Console.WriteLine("Криптограмма: " + input + "\n"); input = input.ToLower(); word = word.ToLower(); Console.WriteLine("Ключ криптограммы: " + Crypt(word,input)); Console.ReadLine(); } static string Crypt(string word, string input) { var sb = new StringBuilder(); for (int i = 0,j=0; i < word.Length; i++) { for (; j < input.Length; j++) { if (word[i] == input[j]) { sb.Append("1"); j++; break; } sb.Append("0"); } } return sb.ToString(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д