С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 26.12.2018
Сообщений: 48
1

Найти символ число по символу, введенному с клавиатуры, и заменить его новым символом

25.03.2021, 23:32. Показов 1509. Ответов 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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//Проблема в том ,что происходит не замена , а просто введённое число ставиться после числа ,которое требуется заменить.
#include <iostream>
#include <windows.h>
#include <stdio.h>
 
using namespace std;
 
struct Spis {
    Spis* previous_item;
    char d;
    int id;
    Spis* next_item;
};
 
Spis* find_item(char value);
void input_item();
void print_spis();
void add_item(char value3, char value2);
 
Spis* pStart, * pEnd, * pCurrent, * pTemp, * pPrev;
int count0 = -1;
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int count = 0;
    char tempC, tempCNew;
 
    cout << "Введите кол-во элементов: ";
    cin >> count;
 
    for (int i = 0; i < count; i++) input_item();
 
    cout << "Список сейчас выглядит так: ";
    print_spis();
 
    cout << endl << "Наше задание найти символ число по символу, введенному с клавиатуры, и заменить его новым символом." << endl;
    cout << "Поэтому введите символ число: ";
    cin >> tempC;
    cout << "Какой символ заменить? -> ";
    cin >> tempCNew;
    add_item(tempC, tempCNew);
 
    cout << "Список после изменений выглядит так: ";
    print_spis();
}
 
void input_item() {
    pCurrent = new Spis;
    cout << endl << "Введите значение элемента: ";
    cin >> pCurrent->d;
    if (count0 == -1) {
        count0 += 1;
        pCurrent->id = count0;
        pStart = pCurrent;
        pEnd = pCurrent;
        pCurrent->previous_item = pCurrent;
        pCurrent->next_item = pCurrent;
        pTemp = pCurrent;
    }
    else {
        count0 += 1;
        pCurrent->id = count0;
        pEnd = pCurrent;
        pCurrent->previous_item = pTemp;
        pCurrent->next_item = pTemp->next_item;
        pStart->previous_item = pEnd;
        pTemp->next_item = pCurrent;
        pTemp = pCurrent;
    }
}
 
void print_spis() {
    if (count0 < 0) {
        cout << "Элементов в списке нет" << endl;
        system("pause"); return;
    }
    pCurrent = pStart;
    for (int i = 0; i <= count0; i++) {
        cout << pCurrent->d;
        pCurrent = pCurrent->next_item;
    }
}
 
Spis* find_item(char value) {
    pCurrent = pStart;
 
    for (int i = 0; i <= count0; i++) {
        if (pCurrent->d == value) return pCurrent;
        else pCurrent = pCurrent->next_item;
    }
}
 
void add_item(char value3, char value2) {
    Spis* pAdd, * pFind;
    pFind = find_item(value3);
    pAdd = new Spis;
    count0 += 1;
    pAdd->d = value2;
    pAdd->id = count0;
 
    pAdd->previous_item = pFind;
    pAdd->next_item = pFind->next_item;
    pFind->next_item->previous_item = pAdd;
    pFind->next_item = pAdd;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2021, 23:32
Ответы с готовыми решениями:

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

Найти вещественное число по числу, введенному с клавиатуры, и заменить его новым числом
Помогите решить задачу. Тип списка: двунаправленный Элемент списка: вещественное Найти...

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

Найти символ число по символу, введенному с клавиатуры, и после него добавить новый символ
Найти символ число по символу, введенному с клавиатуры, и после него добавить новый символ

4
0 / 0 / 0
Регистрация: 26.12.2018
Сообщений: 48
28.03.2021, 11:43  [ТС] 2
Где ошибка и как исправить?
0
Мозгоправ
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
28.03.2021, 16:09 3
Sergey251, внимательно программу не смотрел, но если всё остальное работает, то вместо строки 43 напишите что-то типа:
C++
1
2
3
Spis *item = find_item(tempCNew);
if (item)
    item->id = tempC;
И после строки 92 нужно добавить
C++
1
return NULL;
ЗЫ. По некоторым признакам, есть большие сомнения в правильности программы. Как минимум странно, что работа со списком ведётся при помощи с глобального счётчика, в коде отсутсвует слово NULL или nullptr, при наличии new отсутствует delete.
1
0 / 0 / 0
Регистрация: 26.12.2018
Сообщений: 48
28.03.2021, 16:43  [ТС] 4
Выводит теперь тот же список, который и вводится

Но я заметил другой недочёт
C
1
2
3
4
5
cout << endl << "Наше задание найти символ число по символу, введенному с клавиатуры, и заменить его новым символом." << endl;
    cout << "Поэтому введите символ число: ";
    cin >> tempC;
    cout << "Какой символ заменить? -> ";
    cin >> tempCNew;
Тут должно быть
C
1
cout<<"Каким символом заменить?-> ";
0
Мозгоправ
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
28.03.2021, 17:18 5
Цитата Сообщение от Sergey251 Посмотреть сообщение
Выводит теперь тот же список, который и вводится
Значит find_item() не находит нужный элемент списка.
С учётом вашего "Тут должно быть", возможно надо
C++
1
2
3
Spis *item = find_item(tempC);
if (item)
    item->id = tempCNew;
Вы сами-то посмотрите... вы же логику своего кода лучше понимаете.
0
28.03.2021, 17:18
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.03.2021, 17:18
Помогаю со студенческими работами здесь

Каждый символ-цифру заменить символом, введенным с клавиатуры
Составить схему алгоритма решения задачи,на основе разработанной схемы создать программу Каждый...

Каждый символ ? удвоить. Каждый символ, стоящий перед !, заменить символом, введенным с клавиатуры.
Работа с символьными данными. 15. Каждый символ ? удвоить. Каждый символ, стоящий перед !,...

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

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

Дан символ и предложение. Все его символы, стоящие на четных местах, заменить этим символом
Дан символ и предложение. Все его символы, стоящие на четных местах, заменить этим символом....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru