Char удаление символов: объяснить строку кода - C (СИ)

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

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

Здравствуйте объясните пожалуйста как работает данная строка
strok[k++] = strok[k + 1];
она удаляет символы, но не могу понять как?
for (i = 0;strok[i] != '\0'; i++)
            if (strok[i] == '.' && strok[i + 1] == strok[i])
            {
                while (strok[i+1] == '.')
                {
                    int k = i;
                    while (strok[k] != '\0')
                    strok[k++] = strok[k + 1];
                }
            }

Решение задачи: «Char удаление символов: объяснить строку кода»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
 /*Задание 2
Ввести строку символов, содержащую группы идущих подряд точек. Заменить в тексте каждую группу точек одной точкой.*/
int main(int argc, char* argv[])
{
    char str[256];
    gets(str);
    printf("string = %s\n", str);
    int i;
    for (i = 0;str[i] != '\0'; i++)
        if (str[i] == '.' && str[i + 1] == str[i])
        {
            while (str[i+1] == '.')
            {
                int k = i;
                while (str[k] != '\0')
                    str[k++] = str[k + 1];
            }
        }
 
    printf("output = %s\n", str);
 
    return 0;
}

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

  1. Вводится строка символов, содержащая группы идущих подряд точек.
  2. В цикле проходит по каждому символу строки.
  3. Если текущий символ равен '.', а следующий символ также равен '.', то выполняется замена группы точек одной точкой.
  4. Для замены группы точек одной точкой используется вложенный цикл.
  5. Вложенный цикл начинает свое выполнение с индекса следующего символа после текущего и сдвигается вправо до тех пор, пока не встретит символ, не равный '.'.
  6. В процессе работы вложенного цикла, символы, начиная с текущего и до следующего не равного '.', сдвигаются вправо на одну позицию.
  7. После завершения вложенного цикла, выполняется замена группы точек одной точкой.
  8. После выполнения всех замен, выводится измененная строка.
  9. Программа завершается возвратом значения 0. Список переменных:
  10. str - массив символов, введенных пользователем.
  11. i - переменная цикла, используемая для прохода по каждому символу строки.
  12. k - переменная цикла, используемая во вложенном цикле для сдвига символов вправо. Значения переменных не выделены кавычками, так как в данном случае они не используются.

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


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

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

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