Заменить в тексте каждую группу точек одной точкой - C (СИ)
Формулировка задачи:
Ввести строку символов, содержащую группы идущих подряд точек. Заменить в тексте каждую группу точек одной точкой.
Прошу решить мне данную задачу, у меня лабораторная а я не успел разобраться с данной темой(
Заранее благодарен всем.
Нашел наработку но не рабочую
#include <stdio.h> #include <stdlib.h> #include <string.h> char **gets_txt(); int main() { int i=1; char **func; func=gets_txt(); printf("%s",func[i]); return 0; } char** gets_txt() { char **func, str[128]="A"; int i=0,n,cht=1; func=(char**)malloc(sizeof(char*)); while(strlen(str)!=0) { gets(str); n=strlen(str);// присваиваем переменной n длинну строки str func[i]=(char*)malloc((n+1)*sizeof(char)); strcpy(func[i],str); func=(char**)realloc(func,(++cht)*sizeof(char*)); i++; } return func; }
Решение задачи: «Заменить в тексте каждую группу точек одной точкой»
textual
Листинг программы
#include <stdio.h> #include <conio.h> int main(int argc, char* argv[]) { static char str[256] = "c++ is..object-oriented...programming........language\0"; printf("string = %s\n", str); for (int 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); _getch(); return 0; }
Объяснение кода листинга программы
- В коде объявлена статическая строка
str
размером 256 символов, которая содержит строкуc++ is..object-oriented...programming........language\0
. - Затем в цикле
for
происходит проверка каждого символа строкиstr
. - Если текущий символ
str[i]
равен точке('.
, а следующий символstr[i+1]
также равен точке('.
, то выполняется код в фигурных скобках. - Внутри блока кода находится вложенный цикл
while
, который проверяет все следующие символы, пока не встретит символ, не равный точке('.
. - Внутри вложенного цикла
while
находится еще один циклwhile
, который копирует все символы, начиная с текущего, в следующую позицию, как быпропуская
все точки. - После выхода из вложенного цикла
while
, происходит выход из внешнего циклаfor
. - В конце программы выводится на экран исходная строка
str
и измененная строкаstr
. - Затем программа ожидает нажатия клавиши с помощью функции
_getch()
, после чего завершается и возвращает 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д