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;
- }
Объяснение кода листинга программы
- Вводится строка символов, содержащая группы идущих подряд точек.
- В цикле проходит по каждому символу строки.
- Если текущий символ равен '.', а следующий символ также равен '.', то выполняется замена группы точек одной точкой.
- Для замены группы точек одной точкой используется вложенный цикл.
- Вложенный цикл начинает свое выполнение с индекса следующего символа после текущего и сдвигается вправо до тех пор, пока не встретит символ, не равный '.'.
- В процессе работы вложенного цикла, символы, начиная с текущего и до следующего не равного '.', сдвигаются вправо на одну позицию.
- После завершения вложенного цикла, выполняется замена группы точек одной точкой.
- После выполнения всех замен, выводится измененная строка.
- Программа завершается возвратом значения 0. Список переменных:
- str - массив символов, введенных пользователем.
- i - переменная цикла, используемая для прохода по каждому символу строки.
- k - переменная цикла, используемая во вложенном цикле для сдвига символов вправо. Значения переменных не выделены кавычками, так как в данном случае они не используются.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д