示例#1
0
        static void Main(string[] args)
        {
            char[] hello = { 'H', 'e', 'l', 'l', 'o', ',' };

            //инициализация экземпляров MyString разными способами
            MyString ex1 = new MyString(hello);
            MyString ex2 = new MyString(" world");
            MyString ex3 = "!!!";

            //вывод на экран
            Console.WriteLine("ex1 = {0}", ex1);
            Console.WriteLine("ex2 = {0}", ex2);
            Console.WriteLine("ex3 = {0}", ex3);

            //конкатенация
            MyString res = ex1 + ex2 + ex3;
            Console.WriteLine("ex1 + ex2 + ex3 = {0}", res);            

            //обращение к элементу по индексу
            int i;
            Console.Write("Введите номер символа который вы хотите изменить (отсчёт с нуля): ");
            while (int.TryParse(Console.ReadLine(), out i) == false || i < 0 && i > res.Length)
                Console.Write("Неверный ввод. Введите неотрицательное целое число меньше {0}: ", res.Length);
            Console.Write("Введите символ, на который вы хотите заменить: ");
            char c;
            while (char.TryParse(Console.ReadLine(), out c) == false)
                Console.Write("Неверный ввод. Введите один символ: ");
            res[i] = c;
            Console.WriteLine(res);
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            MyString firstString  = new MyString("Hello my dear friend");
            MyString secondString = new MyString("Hi my dear friend");

            if (firstString.Equals(secondString))
            {
                Console.WriteLine("Lines are equal");
            }
            if (firstString != secondString)
            {
                Console.WriteLine("Lines are not equal");
            }
            firstString += "! How are you?";
            Console.WriteLine(firstString.ToString());
            firstString -= "How";
            Console.WriteLine(firstString.ToString());
            Console.ReadKey();
        }
示例#3
0
        static void Main(string[] args)
        {
            MyString myStringA = new MyString("ПРивет");
            MyString myStringB = new MyString("ПРивет");

            if (myStringA == myStringB)
            {
                Console.WriteLine("Строки равны.");
            }
            if (myStringA != myStringB)
            {
                Console.WriteLine("Строки не равны.");
            }
            myStringA += "123";
            Console.WriteLine(myStringA.ToString());
            myStringA -= "12";
            Console.WriteLine(myStringA.ToString());
            Console.ReadKey();
        }
示例#4
0
        //перегрузка методов Equals GetHashCode и ToString
        public override bool Equals(object obj)
        {
            MyString S = obj as MyString;

            if (S == null || Length != S.Length)
            {
                return(false);
            }
            else
            {
                for (int i = 0; i < Length; i++)
                {
                    if (c[i] != S.c[i])
                    {
                        return(false);
                    }
                }
                return(true);
            }
        }
示例#5
0
        static void Main(string[] args)
        {
            
            
            Console.WriteLine("Введите строку:");
            string a = Console.ReadLine();
            MyString s = new MyString(a); //Преобразование строки в массив символов
            Console.WriteLine("Ваша строка, преобразованная в массив:");
            s.Print(); // вывод массива символов
            Console.WriteLine("Введите строку для сравнения:");
            a = Console.ReadLine();
            if (s.Equals(a) == false) Console.WriteLine("Строки не равны."); // сравнение массива и строки
            else Console.WriteLine("Строки равны.");
            Console.WriteLine("Массив преобразованный в строку:");
            Console.WriteLine(s.ToString()); //преобразование массива в строку
            

            Console.Write("\nНажмите любую клавишу для закрытия программы.");
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            Console.WriteLine("This program creates MyString class with own operators. Here is an examples:\n");
            MyString myStrHello = new MyString("Hello world");
            MyString myStrO     = new MyString("o");
            MyString myStrResult;

            myStrResult = myStrHello + myStrO;
            Console.WriteLine($"MyString \'{myStrHello.ToString()}\' + MyString \'{myStrO.ToString()}\' = {myStrResult.ToString()}.\n");

            myStrResult = myStrHello - myStrO;
            Console.WriteLine($"MyString \'{myStrHello.ToString()}\' - MyString \'{myStrO.ToString()}\' = {myStrResult.ToString()}.\n");

            Console.WriteLine($"Is MyString \'{myStrHello.ToString()}\' and MyString \'{myStrO.ToString()}\' are equals?: {myStrHello == myStrO}.\n");

            MyString myStrHelloCopy = new MyString("Hello world");

            Console.WriteLine($"Is MyString \'{myStrHello.ToString()}\' and MyString \'{myStrHelloCopy.ToString()}\' are equals?: {myStrHello == myStrHelloCopy}.\n");

            Console.WriteLine("\n\nEnd of program. Press any key.");
            Console.ReadKey();
        }
示例#7
0
        static void Main(string[] args)
        {
            char[] hello = { 'H', 'e', 'l', 'l', 'o', ',' };

            //инициализация экземпляров MyString разными способами
            MyString ex1 = new MyString(hello);
            MyString ex2 = new MyString(" world");
            MyString ex3 = "!!!";

            //вывод на экран
            Console.WriteLine("ex1 = {0}", ex1);
            Console.WriteLine("ex2 = {0}", ex2);
            Console.WriteLine("ex3 = {0}", ex3);

            //конкатенация
            MyString res = ex1 + ex2 + ex3;

            Console.WriteLine("ex1 + ex2 + ex3 = {0}", res);

            //обращение к элементу по индексу
            int i;

            Console.Write("Введите номер символа который вы хотите изменить (отсчёт с нуля): ");
            while (int.TryParse(Console.ReadLine(), out i) == false || i < 0 && i > res.Length)
            {
                Console.Write("Неверный ввод. Введите неотрицательное целое число меньше {0}: ", res.Length);
            }
            Console.Write("Введите символ, на который вы хотите заменить: ");
            char c;

            while (char.TryParse(Console.ReadLine(), out c) == false)
            {
                Console.Write("Неверный ввод. Введите один символ: ");
            }
            res[i] = c;
            Console.WriteLine(res);
            Console.ReadKey();
        }
示例#8
0
        static void Main(string[] args)
        {
            MyString myString  = new MyString("Hello World");
            MyString myString2 = new MyString("Fernand Moudio");

            Console.WriteLine(myString);

            //Добавление
            MyString sum = myString + myString2;

            Console.WriteLine("добавление строку в конце текущего : {0}", sum);

            //Удаление
            MyString subMyString = new MyString("World");
            MyString del         = myString - subMyString;

            Console.WriteLine("Удаление подстроку из текущей строки : {0}", del);

            //Сравнение
            MyString aStr = new MyString("Hello orld");

            Console.WriteLine(myString == null);
            Console.ReadKey();
        }
示例#9
0
 public static MyString operator -(MyString str1, MyString str2)
 {
     MyString result = new MyString(str1.ToString().Replace(str2.ToString(), string.Empty));
     return result;
 }
示例#10
0
        static void Main(string[] args)
        {
            //using operator "+"
            var myStringFirst  = new MyString("Это первая строка и она большая, больше, чем все остальные");
            var myStringSecond = new MyString("Это вторая строка");

            Console.WriteLine($"Содержимое первого обьекта класса \"myString\": {myStringFirst}");

            Console.WriteLine($"Содержимое второго обьекта класса \"myString\": {myStringSecond}");

            Console.WriteLine($"Результат сложения двух обьектов типа \"MyString\": {myStringFirst + myStringSecond}");


            //using operator "-"
            myStringFirst.SetString("Это строка из которой необходимо удалить подстроку");
            myStringSecond.SetString("удалить");

            Console.WriteLine($"Содержимое первого обьекта класса \"MyString\": {myStringFirst}");

            Console.WriteLine($"Содержимое второго обьекта класса \"MyString\": {myStringSecond}");

            Console.WriteLine($"Результат удаления подстроки: {myStringFirst - myStringSecond}");


            //using operator "=="
            var myStringToCompare1 = new MyString("Это строка близнец");
            var myStringToCompare2 = new MyString("Это строка близнец");

            if (myStringToCompare2 == null)
            {
                myStringToCompare2 = new MyString("Это строка близнец");
            }
            Console.WriteLine($"Содержимое первого обьекта класса \"MyString\": {myStringToCompare1}");

            Console.WriteLine($"Содержимое второго обьекта класса \"MyString\": {myStringToCompare2}");

            Console.WriteLine($"Результат сравнения двух обьектов типа \"MyString\": {myStringToCompare1 == myStringToCompare2}");


            //reusing operator "=="
            myStringToCompare2.SetString("Эта строка не является близнецом");

            Console.WriteLine($"Значение первого обьекта класса \"MyString\": {myStringToCompare1}");

            Console.WriteLine($"Значение второго обьекта класса \"MyString\": {myStringToCompare2}");

            Console.WriteLine($"Результат сравнения двух обьектов типа \"MyString\": {myStringToCompare1 == myStringToCompare2}");


            //using method "ToString()"
            myStringFirst.SetString("Метод \"ToString\" должен вывести данную строку.");

            Console.WriteLine($"Результат вызова метода \"ToString\" для обьекта класса \"myString\": " +
                              $"{myStringFirst}");


            //using array mode
            myStringFirst.SetString("Эта строка используется для проверки возможности обращения к полям данного обьекта по индексу");

            Console.WriteLine($"Содержимое обьекта класса \"MyString\": {myStringFirst}");

            Console.WriteLine($"Значение 10-го символа строки: {myStringFirst[9]}");


            Console.ReadKey();
        }