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

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

07.10.2017, 16:41. Просмотров 838. Ответов 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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2017, 16:41
Ответы с готовыми решениями:

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

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

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

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

Удалить из данной строки все символы, не являющиеся буквами латинского алфавита или цифрами, и заменив каждую
как написать код к данной задачке? Известно, что в исходной строке...

6
Геомеханик
787 / 594 / 937
Регистрация: 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
Yuniiko
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
11.10.2017, 19:36  [ТС] 3
А объясните ещё пожалуйста почему в 4 строке "int main(void)" собственно void в скобках и зачем строка 12
0
Fixer_84
1049 / 659 / 651
Регистрация: 30.04.2016
Сообщений: 2,234
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
Yuniiko
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
11.10.2017, 21:09  [ТС] 5
А объясните ещё пожалуйста почему в 4 строке "int main(void)" собственно void в скобках и зачем строка 12
0
Babysitter
210 / 127 / 50
Регистрация: 23.11.2015
Сообщений: 374
Завершенные тесты: 2
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/cpp/language/main_function
0
Yuniiko
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 16
19.10.2017, 12:44  [ТС] 7
Так, программа работает правильно, но я не пойму, а кто и где удаляет символы не являющимися буквами алфавита типа "@" или "#" . И при этом оставляет цифвы и превращает их в "**"?
0
19.10.2017, 12:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2017, 12:44

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

Определить число вхождений в строку подстроки "аба", вывести символы строки, не являющейся буквами или цифрами
решить нужно в течении часа определить число вхождений в строку...

Строка: заменить первую "о" на "а", удалив остальные "о"
c++ visual Задание: дана последовательность слов. напечатать все слова,...


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

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

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