Замена всех пустых мест в строке

98
03 января 2022, 17:30

Я получаю от пользователя две строки, потом проверяю первую на некоторые символы -> удаляю эти символы. Тут проблем нет. Дальше мне нужно пустые места в конце заполнить восклицательным знаком "!". И тут проблема. Я написал проверку на пустое место в строке и замену знака, но это не работает. В чем может быть проблема? P.S. размер массива 20, я знаю. Мне такой и нужен

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    setlocale(0, "");
    // получаю строки и длину первой
    char stroka1[20];
    char stroka2[20];
    cout << "Заполните символами первую строку: ";
    cin.getline(stroka1,20);
    cout << "Заполните символами вторую строку: ";
    cin.getline(stroka2,20);
    int len1 = strlen(stroka1);
    // ищу знак "*" или "/" в первой строке и удаляю его.
    int i = 0;
    for (int q=0; stroka1[q]; ++q) {
        if (stroka1[q] != '*' && stroka1[q] != '/') {
            stroka1[i++] = stroka1[q];
            if (stroka1[q]== ' ') stroka1[q]='!'; // проверка на пустое место
        }
    }
    stroka1[i] = 0;
    // вывожу содержимое этих строк
    cout << "" << endl;
    cout << ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" << endl;
    cout << "" << endl;
    cout << "Содержимое первой строки: " << stroka1 << endl;
    cout << "Содержимое второй строки: " << stroka2 << endl;
    system("pause");
}
Answer 1

Сжатие строки с удалением определённых символов сделано, похоже, правильно. Но про пробелы ведь ничего не написано.

А вот после цикла сжатия достаточно пройти от текущего индекса i до конца строки , заполняя ! пространство, которое могло появиться после сжатия.

char stroka1[20];
std::cin.getline(stroka1, 20);
std::cout << stroka1 << std::endl;
int i = 0;
for (int q = 0; stroka1[q]; ++q) 
    if (stroka1[q] != '*' && stroka1[q] != '/')
        stroka1[i++] = stroka1[q];
for (; stroka1[i]; ++i) 
    stroka1[i] = '!';
std::cout << stroka1;

вывод

123**dfg///asd/*dfg
123dfgasddfg!!!!!!!
READ ALSO
Кэш input после перезагрузки страницы

Кэш input после перезагрузки страницы

Подскажите есть возможность после перезагрузки страницы повторно использовать значение поля input? те

93
Ключевое слово this в параметрах метода

Ключевое слово this в параметрах метода

В процессе изучения заметил конструкцию метода:

182