В строке заменить все многоточия (три точки) одними точками - C (СИ)
Формулировка задачи:
Помогите с задачей,пожалуйста: В строке заменить все многоточия (три точки «.») одними точками.
Решение задачи: «В строке заменить все многоточия (три точки) одними точками»
textual
Листинг программы
#include <stdio.h> #include <ctype.h> #define STRLEN 81 void set_char(char *p, char ch); int main(void) { char i,k,words[STRLEN]={0}; puts("Enter a string, please."); gets(words); i=0; while(words[i]) { if(words[i] == '.') set_char(&words[i], '.'); i++; } puts(words); return 0; } void set_char(char *p, char ch) { p++; // перескок на следующий символ если это ch, то замена его на пробел while(*p==ch) { *p = ' '; p++; } }
Объяснение кода листинга программы
В этом коде реализована функция замены всех многоточий (три точки) на одиночные точки в строке, введенной пользователем.
- В начале программы подключаются необходимые библиотеки:
<code {C}>
include
include
- Затем объявляются макросы и переменные:
<code {C}>
define STRLEN 81
char i,k,words[STRLEN]={0};
- Пользователю предлагается ввести строку:
<code {C}>
puts(
Enter a string, please.
); gets(words); - Далее, в цикле проходит по всем символам строки. Если текущий символ является многоточием (т.е. '.'), то вызывается функция set_char, которая заменяет все последующие многоточия на пробелы: <code {C}> i=0; while(words[i]) { if(words[i] == '.') { set_char(&words[i], '.'); } i++; }
- В конце программы выводится измененная строка: <code {C}> puts(words);
- Реализована вспомогательная функция set_char, которая заменяет все вхождения символа 'ch' на пробелы: <code {C}> void set_char(char p, char ch) { p++; // перескок на следующий символ если это ch, то замена его на пробел while(p==ch) { *p = ' '; p++; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д