Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
1

Строка: Распечатать строку, удалив из нее символы, не являющиеся буквами и цифрами, и заменить каждую цифру на "**"

07.10.2017, 16:41. Показов 1708. Ответов 6
Метки нет (Все метки)

Я видимо совсем глупый но не могу сделать подобную программу "Распечатать введенную строку, удалив из нее символы, не являющиеся буквами и цифрами, и заменить каждую цифру на "**"" на основе или примере этой программы
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
#include "iostream" 
#include "stdio.h" 
#include "clocale" 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int ka = 0, kpr = 0, kost = 0;
    char c;
    cout << "Vvedite posledovatelnost simvolov, zakanchivaushuusya EOF \n";
    while ((c = getchar()) != EOF)
        if (c == 'A' || c == 'a')
            ka++;
        else
            if (c == ' ' || c == '\t' || c == '\n')
                kpr++;
            else
                kost++;
    cout << "\n Bilo vvedeno\n Bykv A:" << ka << "\n";
    cout << " Probelov:" << kpr << "\n";
    cout << " Ostalnih:" << kost << "\n";
    return 0;
    } 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2017, 16:41
Ответы с готовыми решениями:

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

Преобразовать строку, удалив из нее все символы, не являющиеся буквами или цифрами
1. Дана строка символов. Преобразовать строку, удалив из нее все символы, не являющиеся буквами...

Преобразовать строку, удалив из неё все символы, не являющиеся буквами или цифрами
Дана строка символов. Преобразовать строку, удалив из неё все символы, не являющиеся буквами или...

Обработка строк. Преобразовать строку, удалив из нее все символы, не являющиеся буквами или цифрами
Дана строка символов. Преобразовать строку, удалив из нее все символы, не являющиеся буквами или...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
6
823 / 626 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
07.10.2017, 19:06 2
Лучший ответ Сообщение было отмечено Yuniiko как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <cctype>
 
int main(void){
    char c;
    while(std::cin.get(c)){
        if(std::isalpha(c))
            std::cout << c;
        else if(std::isdigit(c))
            std::cout << "**";
    }
    std::cin.get();
    return 0;
}
1
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
11.10.2017, 19:36  [ТС] 3
А объясните ещё пожалуйста почему в 4 строке "int main(void)" собственно void в скобках и зачем строка 12
0
1472 / 936 / 809
Регистрация: 30.04.2016
Сообщений: 3,253
11.10.2017, 20:54 4
Yuniiko, здравствуйте! Можно, также, использовать регулярные выражения:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    string str, s;
    cout << "Enter a string:" << "\n";
    getline(cin, str);
    regex letter("[^A-Za-z0-9]");
    regex digit("[0-9]");
    stringstream res;
    stringstream res_final;
    regex_replace(ostream_iterator<char>(res), str.begin(), str.end(), letter, "");
    s = res.str();
    regex_replace(ostream_iterator<char>(res_final), s.begin(), s.end(), digit, "**");
    cout << "Target string: " << res_final.str() << "\n";
    system("pause");
    return 0;
}
P.S. Буду благодарен всем, кто сделает это более элегантно (с помощью регулярных выражений)

Добавлено через 3 минуты
Я имею ввиду один проход по строке, чего у меня сделать не получилось...
0
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
11.10.2017, 21:09  [ТС] 5
А объясните ещё пожалуйста почему в 4 строке "int main(void)" собственно void в скобках и зачем строка 12
0
243 / 137 / 53
Регистрация: 23.11.2015
Сообщений: 394
11.10.2017, 22:04 6
Цитата Сообщение от Yuniiko Посмотреть сообщение
почему в 4 строке "int main(void)" собственно void в скобках
потому что людям даже в 2017 до- ANSI C (до K&R так точно) покоя не дает.
в С++
C++
1
void foo()
означает, что функция не принимает параметров, в старом Си эта запись означала, что функция принимает неопределенное количество параметров, а запись
C
1
void foo(void)
как раз и являлась костылем, который позволял различать эти две ситуации.

не стОит писать так в С++, наскоько я знаю существует три способа записи мейна в соответствии со стандартом, а именно вот
http://en.cppreference.com/w/c... n_function
0
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
19.10.2017, 12:44  [ТС] 7
Так, программа работает правильно, но я не пойму, а кто и где удаляет символы не являющимися буквами алфавита типа "@" или "#" . И при этом оставляет цифвы и превращает их в "**"?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2017, 12:44

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

Преобразовать строку, удалив все символы, не являющиеся буквами или цифрами
есть задача: дана текстовая строка, состоящая из букв и цифр. Преобразовать строку, удалив все...

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

Преобразовать строку символов, удалив из нее все символы, не являющиеся буквами
Прошу Вас, помогите! Дана строка символов. преобразовать строку символов, удалив из нее все...

Удалить в строке все символы являющиеся буквами или цифрами, и заменить каждую большую букву одноименной малой
условие : Даны символы S1,...Sn. Известно, что символ S1 отличен от пробела и что среди S1,...

Преобразовать последовательность, удалив все символы, не являющиеся буквами и цифрами
здравствуйте, попалась мне задачка ваще подстава-подстав по символьному типу: Даны символы...

Преобразовать последовательность, удалив из неё символы, не являющиеся буквами
Здравствуйте! Помогите пожалуйста решить задачу. То есть вводим текст с цифрами, знаками...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.