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

Во введенной строке заменить все запятые на точки, а точки - на восклицательные знаки

04.03.2017, 22:20. Просмотров 921. Ответов 1
Метки нет (Все метки)

15. В введенной строке заменить все запятые на точки, а точки - на восклицательные знаки. Подсчитать количество таких замен. почему оно после пробела ничего не пишет?
C++ (Qt)
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
#include <iostream>
#include <Windows.h>
#include <conio.h>
 
using namespace std; //используем имена из пространства std
 
int main()
{
    SetConsoleCP(1251); //ставим кодовую страницу консоли на ввод...
    SetConsoleOutputCP(1251); //.. и на вывод, что бы работала кириллица
    cout << "Введите длину строки: ";
    int lenght; //переменная с длиной строки
    int kt = 0, kz = 0;//переменные количества точек и восклицательных знаков
    cin >> lenght; //вводим ее
    char* line = new char[lenght]; //обьявляем динамический массив char
    cout << "Введите строку: ";
    cin >> line; //и вводим в него строку
    for (int i = 0; i < lenght; i++){ //перебираем элементы массива от 0 до lenght
        {
        
            if (line[i] == '.'){ //если элемент является .
                line[i] = '!'; //заменяем на !
            }
            else{ //или
                if (line[i] == ',') //если элемент ,
                    line[i] = '.'; //заменяем на .
            }
            if (line[i] == '.')//полсчет точек
            {
                kt++;
            }
            if (line[i] == '!')//полсчет восклицательных знаков
            {
                kz++;
            }
        }
    }
    cout << "Количество точек равно: " << kt << endl;
    cout << "Количество восклицательных знаков равно: " << kz << endl;
    cout << "Вышло как-то так: " << line; //выводим результат
    _getch(); //ждем пока пользователь не нажмет любую клавишу. что бы не использовать небезопасные вызовы system
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2017, 22:20
Ответы с готовыми решениями:

Во введенной строке заменить все запятые на точки, а точки - на восклицательные знаки
Во введенной строке заменить все запятые на точки, а точки - на восклицательные...

Заменить все запятые на точки, а точки - на восклицательные знаки
Помогите! 19. Во введенной строке заменить все запятые на точки, а точки - на...

Заменить все пробелы на запятые, а запятые на точки. Посчитать количество запятых во введенной строке
Во введенной строке заменить все пробелы на запятые, а запятые на точки....

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

В данной строке все запятые заменить на точки
Помогите пожалуйста новичку с первой работой на С++ или объясните, как дописать...

1
DU3
281 / 233 / 115
Регистрация: 07.09.2016
Сообщений: 587
04.03.2017, 23:38 2
Лучший ответ Сообщение было отмечено MC_SOL как решение

Решение

такая фича у std::cin. возможно ее можно отключить. но проще вопсользоваться std::string и std::getline:
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
#include <iostream>
#include <string>
#include <Windows.h>
#include <conio.h>
 
using namespace std; //используем имена из пространства std
 
int main()
{
    SetConsoleCP(1251); //ставим кодовую страницу консоли на ввод...
    SetConsoleOutputCP(1251); //.. и на вывод, что бы работала кириллица
    int kt = 0, kz = 0;//переменные количества точек и восклицательных знаков
    cout << "Введите строку: ";
    std::string line;
    std::getline(std::cin, line); //и вводим в него строку
    for (int i = 0; i < line.size(); i++) //перебираем элементы массива от 0 до lenght
    {        
      if (line[i] == '.') //если элемент является .
      {
          line[i] = '!'; //заменяем на !
      }
      else if (line[i] == ',') //если элемент ,
      {
        line[i] = '.'; //заменяем на .
      }
 
      if (line[i] == '.')//полсчет точек
      {
          kt++;
      }
      if (line[i] == '!')//полсчет восклицательных знаков
      {
          kz++;
      }
    }
    cout << "Количество точек равно: " << kt << endl;
    cout << "Количество восклицательных знаков равно: " << kz << endl;
    cout << "Вышло как-то так: " << line; //выводим результат
    _getch(); //ждем пока пользователь не нажмет любую клавишу. что бы не использовать небезопасные вызовы system
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2017, 23:38

В строке заменить все запятые на точки, подсчитать количество замен
В строке заменить все запятые на точки.Подсчитать кол-во замен!

Заменить в текстовой строке все запятые на точки и вывести результат на экран
Народ как сделать в обычном borland c следющее: Заменить в текстовой строке...

В строке заменить все точки «.» на запятые «,», а двоеточия «:» на точку с запятой «;». Подсчитать количество замен
В строке заменить все точки «.» на запятые «,», а двоеточия «:» на точку с...


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

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

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