С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 21

Поменять указанный символ в строке на '*'

27.08.2014, 19:19. Показов 3676. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста как сделать задание

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
#include<iostream.h>
#include<windows.h>
main()
{
    char text1 [20], text2 [20];
    CharToOem ("Введите строку", text1);
    CharToOem ("Введите символ", text2);
        
const int n = 50;
char a1[n],a2[n];
    cout<<text1<<'\t'; //ввожу строку
    cin>>a1;
    cout<<text2<<'\t'; //ввожу символ
    cin>>a2;
 
 
 
 
int i=0;
while ()
{
    if()
    
}
 
 
 
 
 
 
cout<<"\n";
return 0;
}

Мне нужно сделать так: после того когда я ввела строку ввожу символ с этой строки и этот символ в строке должен поменяться на *, и вывести его.
Например так
строка - 123грва59нпро
символ - 5
новая строка - 123грва*9нпро
Что мне нужно записать в while() и if()?
Помогите пожалуйста!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.08.2014, 19:19
Ответы с готовыми решениями:

[MASM32] Заменить заданный символ в строке текста на указанный новый символ
Не могу сам сделать, так как мало изучал ассемблер, но очень надо( 4) Напишите диалоговую программу с использованием функций для работы с...

Макроопределения совместно с с++: Заменить заданный символ в строке текста на указанный новый символ
Вот код. Задание: заменить заданный символ в строке текста на указанный новый символ. Выдает следующую ошибку на строку...

Заменить заданный символ в строке на указанный символ
Ребят, нашел вот такой код, должен заменить заданный символ в строке на указанный символ, а он какой то дурью занимается, не подскажете как...

13
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
27.08.2014, 19:30
я наведу вас на мысль - у нас есть строка длинной 50 символов, мы должны каждый символ сравнить с имеющимся, и если он совпадает, то на его место записать символ '*' при этом мы должны каждый раз учитывать сколько символов мы уже проверили, чтобы не считать дальше, после того как строка уже закончилась
0
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 21
27.08.2014, 19:46  [ТС]
dzrkot,
сравнение записывать у while?
0
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
27.08.2014, 19:50
что такое оператор while() ? - это оператор, который выполняется, т.е. крутится сам в себе пока условие внутри него не перестанет быть верным(true) , если вам надо 50 раз прсмотреть символы, то логично предположить, что вам надо выполнить while 50 раз - как это сделать - подумайте сами, гугл в помощь(а ещё Прата Дейтл Липман Шилдт итд)
Как проверить символ?Есть поератор if()
вот вам надо првоерить является ли скажем число 5 положительным
и вы пишите
C++
1
2
3
4
5
6
7
8
if(5>0)
{
cout<<" число 5 положительное, уиии!!!=))";
}
else
{
cout<<"беда, мой мир рухнул, 5 отрицательное число =(((";
}
0
 Аватар для Справлюсь
76 / 36 / 17
Регистрация: 24.07.2014
Сообщений: 357
27.08.2014, 19:53
Цитата Сообщение от Jaroslava Посмотреть сообщение
dzrkot,
сравнение записывать у while?
лучше в for

Добавлено через 1 минуту
там счетчик есть встореный
0
40 / 40 / 17
Регистрация: 04.02.2014
Сообщений: 144
27.08.2014, 20:00
Jaroslava, во-первых, если вы будете искать только один символ, ненужно делать для него массив на 20 элементов. Достаточно одной символьной переменной, например:
C++
1
char symbol = '*'
Далее Вы последовательно сравниваете элементы массива с этим символом, т.е. условие while у Вас будет примерно такое:
C++
1
while(text[i] != symbol)
А в операторе if вы наоборот проверяете условие совпадения:
C++
1
if(text[i] == symbol)
...то делаете замену и прерываете дальнейший поиск оператором break.
0
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
27.08.2014, 20:36
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
#include<iostream>
#include <cstring>
#include <windows.h>
using namespace std;
int main()
{
    char text1 [20], text2 [20];
    CharToOem ("Введите строку", text1);
    CharToOem ("Введите символ", text2);
    const int n = 50;
    char a1[n],a2;
    cout<<text1<<'\t'; //ввожу строку
    cin>>a1;
    cout<<text2<<'\t'; //ввожу символ
    cin>>a2;
    cin.get(); // пропускаем символ '\n'
    int L=strlen(a1); // Длина строки
    while (L>0)
   {
            if(a1[L-1]==a2)
                 a1[L-1]='*';
            L--;
   }
   cout<<a1<<"\n";
   system("pause");
   return 0;
}
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
27.08.2014, 20:44
zss, ну что же Вы, Сергей Сергеевич!



Люди так героически пытались подтолкнуть ТС к поиску (и успешному нахождению) собственного решения, а Вы взяли и на блюдечке с голубой каёмочкой ответ выкатили.
1
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
27.08.2014, 20:49
Две строчки кода проще показать, чем объяснить.
В следующий раз напишет самостоятельно!
0
 Аватар для orange_fox
34 / 34 / 8
Регистрация: 06.04.2014
Сообщений: 189
28.08.2014, 14:09
C++
1
2
3
4
5
6
7
8
9
char cstr[] = "some string!";
const char replace_from = 's';
const char replace_to = '*';
 
for(char* ptr = cstr; ptr; ++ptr)
{
    if(*ptr == replace_from)
        *ptr = repace_to;
}
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
28.08.2014, 14:17
Цитата Сообщение от Jaroslava Посмотреть сообщение
Объясните пожалуйста как сделать задание
- вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main(){
    char text[] = "Mama mila ramy";
    char chfind = 'a';
    char chrepl = '*';
    char * ptr  = 0;
    cout<<"INPUT TEXT  : "<<text<<endl;
    while( (ptr = strchr(text, chfind )) != 0 )
           *ptr = chrepl;
    cout<<"OUTPUT TEXT : "<<text<<endl;
    cin.get();
    return 0;
}
INPUT TEXT : Mama mila ramy
OUTPUT TEXT : M*m* mil* r*my
http://codepad.org/XHYccPk5
0
1 / 1 / 0
Регистрация: 29.03.2014
Сообщений: 24
28.08.2014, 17:45
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string s;
    char a;
    cout << "Vvedite stroku" << endl;
    getline(cin, s);
    cout << "vvedite simvol" << endl;
    cin >> a;
    for (int i = 0; i < s.size(); i++)
        if (s[i] == a)
            s[i] = '*';
    cout << s << endl;
    system("PAUSE");
    return 0;
}
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
28.08.2014, 22:23
Используйте стандартные алгоритмы
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <algorithm>
#include <iostream>
#include <string>
 
int main() 
{
    std::string s = "abibas";
    const char c = 'a';
    std::replace( s.begin(), s.end(), c, '*' );
    std::cout << s << std::endl;
    return 0;
}
0
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 21
29.08.2014, 12:53  [ТС]
Спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.08.2014, 12:53
Помогаю со студенческими работами здесь

[MSSQL] Заменить указанный символ в строке
Можно ли как ни будь заменить в строке 4 (N) символ на указанный? Причем не используя Substring. Или тут такого нет? Например было ...

Заменить указанный символ на пробел во всей строке
Приветствую, форумчане. Нужна помощь с одной программкой: Заменить указанный символ на пробел во всей строке (Используя команду scas). ...

Указать сколько раз в строке встречается указанный символ
uses CRT; var S: String; C: Char; Cnt, I: Byte; begin Write('Vvedite stroky: '); ReadLn(S); Write('Vvedite...

Подсчитать, сколько раз встречается в данной строке указанный символ
При построении выводится Warning: No stack При запуске программы выводит только единицы. В чем ошибка? запускал в TASM. .model...

В каждой строке текста вставить указанный символ после k-гo символа.
В каждой строке текста вставить указанный символ после k-гo символа.


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru