Вставка определённого количества символов в середину строки

Мне нужно вставить в середину строки восклицательные знаки, но пока не пойму как это сделать, важно, то что строка должна будет продолжиться и после восклицательных знаков

~~!!!~~~~ - примерно, так должна выглядеть

#include <iostream>
#include <locale>
#include <string>
using namespace std;

int main() {
setlocale(LC_ALL, "rus");
int length, countOfExclamationMark;
cout << "Введите общую длину колонтитула: ";
cin >> length;
cout << "Введите количество восклицательных знаков: ";
cin >> countOfExclamationMark;
 for (int i = 0; i < length; i) {
    cout << "~";
 }
}

P.s. использовать только циклы и условные конструкции!


Ответы (1 шт):

Автор решения: Ikam213

Создай дополнительную подстроку, посчитай, сколько символов до середины изначальной строки, вставь их в новую, затем вставь n восклицательных знаков, а потом оставшиеся символы.

Если символов изначально нечётное число, то сначала вставь (k-1)/2 символов, где k - длина изначальной строки, потом n восклицательных знаков и далее (k+1)/2 оставшихся символов.

→ Ссылка