Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
1 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 40

Заменить гласные буквы номером позиции в строке

01.10.2015, 19:45. Показов 4586. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В данной задаче нужно заменить гласные буквы номером позиции в строке.
Программа работает, но когда длина строки достаточно большая(>10 символов), функция не возвращает результат.
Если кто знает причину, напишите.

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
25
26
27
28
29
class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("Please,enter the text");
                string str12 = Console.ReadLine();               
                Console.WriteLine(Vowel2Index(str12));
            }
        }
        public static string Vowel2Index(string str)
        {          
            List<char> str_1 = new List<char> { 'a', 'e', 'i', 'u', 'o' };
            foreach (char ch in str_1)
            {
                for (int i = 0; i < str.Length; i++)
                {
                    if (str[i].ToString().Contains(ch))
                    {
                        str= str.Insert(i, (i + 1).ToString());
                        str= str.Remove(i + 1, 1);
                    }
 
 
                }
            }
            return str;
        }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.10.2015, 19:45
Ответы с готовыми решениями:

Программа определяет в строке номер позиции слова(первой буквы) с заданным номером
Программа определяет в строке номер позиции слова(первой буквы) с заданным номером Помогите пожалуйста. Долблюсь, не могу сделать %-)

Как заменить в каждой четной строке все гласные буквы на большие
Как заменить в каждой четной строке все гласные буквы на большие?

Заменить гласные буквы их номером в алфавите
Нужно ввести строку символов на русском языке, заменить каждую гласную букву ее номером в алфавите. Не так давно начал изучать язык C ,...

5
 Аватар для Detect
123 / 123 / 72
Регистрация: 11.05.2014
Сообщений: 331
01.10.2015, 20:01
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   class Program {
        static void Main(string[] args) {
            string source = "abcdefghijklmnopqrstuvwxyz";
            char[] vowels = { 'a', 'e', 'i', 'o', 'u', 'y' };
            StringBuilder sb = new StringBuilder();
 
            for (int i = 0; i < source.Length; i++) {
                if (vowels.Contains(source[i])) {
                    sb.Append(i);                    
                }
                else {
                    sb.Append(source[i]);
                }                
            }
            Console.WriteLine(sb.ToString());
            Console.ReadKey();
        }
    }
0
1 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 40
03.10.2015, 21:34  [ТС]
За код конечно спасибо, но всё таки вопрос стоял в том, почему не работает корректно собственный мой код?
Я не вижу очевидной ошибки..
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
03.10.2015, 22:06
Цитата Сообщение от Vladdik Посмотреть сообщение
Я не вижу очевидной ошибки..
Я тоже. Скопировал код. Запустил - получил бесконечный цикл.
Поэкспериментировал. Делаю ошибку, причем любую. Пытаюсь запустить - компилятор ругается.
Исправляю сделанную ошибку, запускаю - программа работает.
Мне тоже интересно - почему?
0
 Аватар для Detect
123 / 123 / 72
Регистрация: 11.05.2014
Сообщений: 331
03.10.2015, 22:48
Лучший ответ Сообщение было отмечено Vladdik как решение

Решение

Зацикливание происходит на длинных строчках потому, что строка динамически "толстеет".
Если наглядно, то:
Берем строку "hellohellohello". Когда код доходит до последней буквы 'e', то он делает следующее:
C#
1
2
 str= str.Insert(i, (i + 1).ToString());  // ...h12ello
 str= str.Remove(i + 1, 1);               // ...h1ello  - буква 'e' никуда не делась, но строка потолстела на 1 символ
И так далее.
2
1 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 40
03.10.2015, 22:57  [ТС]
спасибо!! Я сам так и не увидел эту очевидную вещь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.10.2015, 22:57
Помогаю со студенческими работами здесь

Гласные латинские буквы в строке нужно заменить на соответствующие прописные буквы, а каждые пять символов разделить пробелами.
Добрые Люди, помогите создать задачку. Условия Дана символьная строка, состоящая из строчные букв русского и латинского алфавита...

Во введенной строке заменить все гласные латинские буквы на русские соответственно
У меня установлен Borldand C++ Builder Dos Box. Как в нем ввести русский алфавит в консоле!?Язык на компьютере меняется,а в нем нет. ...

Процедура StrlB(s,n). Заменить в строке s, начиная с позиции n, все малые буквы на большие
Разработать процедуры и функции, которые обеспечивают выполнение операций, указанных в задании: StrlB(s,n). Заменить в строке s, начиная...

Проверить есть ли в слове с заданным номером гласные буквы
Дан символьный массив, образованный из слов, разделенных пробелами. С использованием процедур и функций выполнить: o Проверить есть ли в...

Дано слово, заменить в нем гласные буквы на согласные, следующие за ним в алфавите, а согласные на гласные
Дано слово, заменить в нем гласные буквы на согласные, следующие за ним в алфавите, а согласные на гласные.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru