0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 12
1

Нужно в одной строке удалить каждый символ, принадлежащий второй строке. При решении нельзя использовать готовые функции

10.12.2018, 00:22. Показов 1596. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Нужно написать метод, который должен в первой заданной строке удалить каждый символ, принадлежащий второй заданной строке. При решении нельзя использовать готовые строковые функции.

Написал код. Но он не совсем правильно работает. Где ошибка?
Буду благодарен за помощь!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    class Program
    {
        static void Main()
        {
            string s1 = "Какая-то строка, в которой нужно удалить некоторое количество символов!!!aаа";
            string s2 = "ай!";
            Console.WriteLine(s1+"\n");
 
            Console.WriteLine(Func(s1, s2));
            Console.ReadKey();
 
        }
 
        public static string Func(string s1, string s2)
        {
            for (int i = 0; i < s1.Length; i++)
            {
                for (int j = 0; j < s2.Length; j++)
                    if (s1[i] == s2[j])
                        s1 = s1.Remove(i, 1);
            }
            return s1;
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2018, 00:22
Ответы с готовыми решениями:

Из первой заданной строки удалить каждый символ, принадлежащий и второй строке
Задача №1. Составить процедуру, в результате обращения к которой из первой заданной строки...

В первой заданной строке удалить каждый символ, принадлежащий и второй заданной строке
Написать функцию, входными параметрами которой являются две строки. Функция должна в первой...

Метод должен в первой заданной строке удалить каждый символ, принадлежащий и второй
Помогите пожалуйста решить задачу, если возможно, с объяснениями.Спасибо! Написать метод, входными...

В первой заданной строке удваивоить каждый символ, принадлежащий также второй строке
Помогите с задачей! Нужно составить программу, при выполнении которой в первой заданной строке...

4
384 / 184 / 107
Регистрация: 07.01.2016
Сообщений: 496
10.12.2018, 00:33 2
doppelganger51,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        public static string Func(string s1, string s2)
        {
            for (int i = s1.Length-1;i>=0;i--)
            {
                for (int j = 0; j < s2.Length; j++)
                    if (s1[i] == s2[j])
                    {
                        s1 = s1.Remove(i, 1);
                        break;
                    }
            }
            return s1;
        }
0
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 12
10.12.2018, 10:27  [ТС] 3
Спасибо, но ваш код не проверяет последний символ первой строки.
C#
1
for (int i = s1.Length-1;i>=0;i--)
Добавлено через 16 минут
С помощью метода "тыка" все-же решил... Хз, насколько правильно, но работает

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        public static string Func(string s1, string s2)
        {
            for (int i = s1.Length - 1; i >= 0; i--)
            {
                for (int j = s2.Length-1; j >= 0; j--)
                    if (s1[i] == s2[j])
                    {
                        s1 = s1.Remove(i, 1);
                        break;
                    }
            }
            return s1;
        }
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
10.12.2018, 13:31 4
doppelganger51, alexus5,
При решении нельзя использовать готовые строковые функции?
Тогда так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        public static string Func(string s1, string s2)
        {
            var result = "";
            for (int i = 0; i < s1.Length; i++)
            {
                var notFound = true;
                for (int j = 0; j < s2.Length; j++)
                    if (s1[i] == s2[j])
                    {
                        notFound = false;
                        break;
                    }
                if (notFound)
                    result += s1[i];
            }
            return result;
        }
Цитата Сообщение от doppelganger51 Посмотреть сообщение
в первой заданной строке удалить каждый символ
Кстати в первой заданной строке даже теоретически невозможно удалить символы.
Строковая функция s1.Remove(i, 1) создаёт новую строку.
1
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 12
10.12.2018, 22:44  [ТС] 5
Цитата Сообщение от amr-now Посмотреть сообщение
Кстати в первой заданной строке даже теоретически невозможно удалить символы.
Строковая функция s1.Remove(i, 1) создаёт новую строку.
Та то понятно. Но сказано было в такие детали не вдаваться
0
10.12.2018, 22:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2018, 22:44
Помогаю со студенческими работами здесь

В первой заданной строке удвоить каждый символ, принадлежащий также второй строке
Составьте программу, в результате выполнения которой в первой заданной строке удваивается каждый...

В строке удвоить каждый символ, принадлежащий второй строке
Составьте программу , в результате выполнения которой в первой заданной строке удваивается каждый...

Из первой заданной строки удаляется каждый символ, принадлежащий второй строке.
3. Для заданных трех строк S1, S2 и S3 определить какая из этих строк удовлетворяет следующему...

Из первой заданной строки удаляется каждый символ, принадлежащий второй заданной строке
Составить процедуру, в результате обращения к которой из первой заданной строки удаляется каждый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru