Перед каждым символом * (звёздочка) вставить символ + (плюс) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

По условиям нужно получать char[] с помощью

gets()

, что я и делаю, других вариантов нет. Функция len() - пользовательская. Чтобы не было вопросов, вот её код под спойлером.
int len(char s[]) {
    int i = 0;
    while (s[i] != '\0') i++;
    return i;
}
Вот моя попытка вставить плюс перед звёздочкой:
for (int i=0; s[i] != '\0'; i++) {
       if (s[i-1] == '*') {
           for (int j = len(s); j < i; j--) {
               s[j+1] = s[j]; // сдвигаем элементы на один
           }
           s[i] = '+'; // здесь происходит вставка, которая кривая
       }
Видимо, я запутался в индексах, но уже битый час не догоняю, где именно. Подскажите, пожалуйста.

Решение задачи: «Перед каждым символом * (звёздочка) вставить символ + (плюс)»

textual
Листинг программы
    for (int i=0; s[i]; i++)
        if (s[i] == '*') {
            for (size_t j = strlen(s); j >= i; j--)
                s[j+1] = s[j];
            s[i++] = '+';   
       }

Объяснение кода листинга программы

В данном коде решается задача по замене каждого символа * на символ + в строке, представленной в переменной s.

  1. Переменная i используется как счётчик для прохода по каждому символу в строке.
  2. Переменная s[i] проверяется на ненулевой статус, чтобы избежать выхода за пределы строки.
  3. Если текущий символ равен *, то выполняется следующий код.
  4. Переменная j инициализируется как длина строки, которую необходимо уменьшать на каждом шаге внешнего цикла.
  5. На каждой итерации внешнего цикла, один из символов внутреннего цикла заменяется на символ +.
  6. Значение переменной i увеличивается на единицу после каждой итерации внутреннего цикла.
  7. После завершения внутреннего цикла, значение переменной i становится равным *.
  8. Внутренний цикл завершается, и значение переменной j уменьшается на единицу.
  9. После завершения внешнего цикла, все символы * заменены на символ +. Список изменений:
  10. Замена каждого символа * на символ +.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы