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

Удвоить каждое вхождение символа C в строку S

15.11.2014, 09:56. Показов 4951. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка S и символ C. Удвоить каждое вхождение символа C в строку S. Как вставлять символ в строку в указанную позицию?

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
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _9_char_
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("{0,53}", "Практическое задание №9. Вариант 7");
            Console.WriteLine();
            char c;
            Console.WriteLine("Введите символ");
            c = Convert.ToChar(Console.ReadLine());
            string s;
            Console.WriteLine("Введите строку");
            s = Convert.ToString(Console.ReadLine());
            Console.WriteLine();
 
            Console.WriteLine("Символ - " + c);
            Console.WriteLine();
            Console.WriteLine("Строка - "+"'"+s+"'");
            Console.WriteLine();
 
            int i = 0;
 
            for (i = 0; i < s.Length; i++)
            {
                if (s[i] == c)
                {
                   // вставить символ в строку в позиции s[i]
                }
            }
            Console.WriteLine("Новая строка - '" + s + "'");
            Console.ReadKey();
 
        }
    }
}
Добавлено через 15 минут
Мне надо решить задачу разными способами (разными типами строк). Вот пытаюсь через char решить. Как строку в строку вставить - понятно, а вот как через тип char решается?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.11.2014, 09:56
Ответы с готовыми решениями:

Удвоить каждое вхождение символа в строку
дана строка S и символ С . удвоить каждое вхождение символаC в строку S. Нужно выполнить 3 спосабами, заранее спс.

Удвоить каждое вхождение символа С в строку S
Помогите пожалуйста сделать программу к завтрашнему дню на С#.Дан символ С и строка S. Удвоить каждое вхождение символа С в строку S.

Удвоить каждое вхождение символа в строке
Дана строка S и символ C. Удвоить каждое вхождение символа C в строку S.

9
 Аватар для Nakajinro
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 17
15.11.2014, 10:12
Если у вас массив типа char, то просто нужно вставить в нужной позиции массива и сместить оставшиеся элементы вправо
0
1 / 1 / 1
Регистрация: 27.05.2013
Сообщений: 160
15.11.2014, 10:18  [ТС]
Цитата Сообщение от Nakajinro Посмотреть сообщение
Если у вас массив типа char, то просто нужно вставить в нужной позиции массива и сместить оставшиеся элементы вправо
можно код пожалуйста?
0
 Аватар для Nakajinro
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 17
15.11.2014, 10:22
А символ нужно заменять?
0
1 / 1 / 1
Регистрация: 27.05.2013
Сообщений: 160
15.11.2014, 10:32  [ТС]
Цитата Сообщение от Nakajinro Посмотреть сообщение
А символ нужно заменять?
Например. Вводим с клавиатуры символ "ы" и строку "рыба рыбная". Должно вывести строку "рыыба рыыбная". Через string можно сделать это String.Insert(i,c); но проблема в том, что у меня задание сделать через тип char. и поэтому этот метод не канает
0
 Аватар для Nakajinro
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 17
15.11.2014, 11:15
Лучший ответ Сообщение было отмечено Flaze как решение

Решение

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _9_char_
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("{0,53}", "Практическое задание №9. Вариант 7");
            Console.WriteLine();
            char c;
            Console.WriteLine("Введите символ");
            c = Convert.ToChar(Console.ReadLine());
            char[] s;
            Console.WriteLine("Введите строку");
            s = Console.ReadLine().ToCharArray();
            Console.WriteLine();
 
            Console.WriteLine("Символ - " + c);
            Console.WriteLine();
            Console.WriteLine("Строка - " + "'" + new string(s) + "'");
            Console.WriteLine();
 
            for (int i = 0; i < s.Length; i++)
            {
                if (s[i] == c)
                {
                    int size = s.Length + 1;
                    Array.Resize(ref s, size);
                    for (int j = s.Length - 2; j >= i; j--)
                    {
                        s[j+1] = s[j];
                    }
                    i++;
                }
 
            }
            string result = new string(s);
            Console.WriteLine("Новая строка - '" + result + "'");
            Console.ReadKey();
 
        }
    }
}
как - то так. еще я бы советывал проверять на null Convert.ToChar(Console.ReadLine());
0
1 / 1 / 1
Регистрация: 27.05.2013
Сообщений: 160
15.11.2014, 11:30  [ТС]
Благодарю!
0
 Аватар для Nakajinro
2 / 2 / 3
Регистрация: 15.11.2014
Сообщений: 17
15.11.2014, 11:31
На здоровье :3
0
1 / 1 / 1
Регистрация: 27.05.2013
Сообщений: 160
15.11.2014, 18:26  [ТС]
Где ошибка? не удваивает символ и еще не выводит на экран переменную ch(последняя строка).

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
  {
            string s;
            char c;
            
            Console.WriteLine("Введите символ");
            c = Convert.ToChar(Console.ReadLine());
 
            string ch;
 
            Console.WriteLine("Введите строку");
            s = Console.ReadLine();
            for (int i = 0; i < s.Length; i++)
            {
                if (s[i] == c)
                {
                    Console.WriteLine(c);
                    ch = Console.ReadLine();
                    s = s.Insert(i, ch);
                }
                else Console.WriteLine("Такого символа в строке нет");
                break;
            }
            Console.WriteLine();
            Console.WriteLine("----------------");
            Console.WriteLine("Новая строка - " + s);
            Console.WriteLine("----------------");
            Console.WriteLine("ch="+ch); //не выводит
            Console.WriteLine("----------------");
            Console.ReadKey();
0
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
15.11.2014, 18:49
Цитата Сообщение от Flaze Посмотреть сообщение
Где ошибка?
Строки 17 и 21 лишние.
В строке 18 происходит зацикливание.
В строке 20 нарушена логика, вы под одному символу s[i] судите есть ли в строке в целом искомые или нет.

Должно быть как-то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Console.WriteLine("Введите символ");
char c = Convert.ToChar(Console.ReadLine());
 
Console.WriteLine("Введите строку");
string s = Console.ReadLine();
 
bool found = false;
StringBuilder sb = new StringBuilder(s);
for (int i = s.Length - 1; i >= 0; i--)
{
    if (sb[i] == c)
    {
        found = true;
        sb.Insert(i, c);
    }
}
        
s = sb.ToString();
Console.WriteLine(found ? s : "Не найден");
Console.ReadKey();
Или так:
C#
1
2
3
string c = "a", s = "aba";
s = s.Replace(c, c + c);
Console.WriteLine(s);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.11.2014, 18:49
Помогаю со студенческими работами здесь

Удвоить каждое вхождение заданной подстроки
Написать программу, которая удваивает каждое вхождение заданной подстроки x;

Удваивает каждое вхождение заданного символа x
7. удваивает каждое вхождение заданного символа x;

Заменить каждое вхождение <i> на <курсив>, а каждое вхождение </i> на <конец курсива>
Дан текст, в котором встречаются структуры &lt;i&gt; и &lt;/i&gt;. Заменить каждое вхождение &lt;i&gt; на &lt;курсив&gt;, а каждое вхождение...

Разработать программу, которая для заданной строки s: удваивает каждое вхождение заданного символа x
Разработать программу, которая для заданной строки s: удваивает каждое вхождение заданного символа x; Замечание. При решении задач...

Удвоить каждое вхождение символа C в строку S
Пожалуйста, помогите написать программу на СИ. Вот задание &quot;Введенные символ C и строка S. Удвоить каждое вхождение символа C в строку...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru