Оставить только два пробела в строке, если число пробелов больше 3 - C (СИ)
Формулировка задачи:
Добрый вечер. В универе начали недавно изучать СИ. У меня возникли трудности с заданием. Пользователь вводит строку. Суть задания заключается в том, чтобы оставить только два пробела, если число последовательно введенных пробелов превышает цифру(или равно) 3. Если их число меньше 3 , то ничего не делать.
Например:
input:
hello___world__hello_p
output:
hello__world__hello_p
Можете дать какую нибудь идею для реализации или псевдокод
Решение задачи: «Оставить только два пробела в строке, если число пробелов больше 3»
textual
Листинг программы
- #include <stdio.h>
- char* del_ch(char* s, char c, int n){
- int i;
- char* p = s, *t = s;
- while((*p = *s) != '\0'){
- if(*s == c){
- i = 1;
- do {
- if(i++ < n)
- ++p;
- ++s;
- } while(((*p = *s) != '\0') && (*s == c));
- continue;
- } else
- ++p;
- ++s;
- }
- return t;
- }
- int main(void) {
- char s1[] = "_hello___world__hello_p<br>end_____";
- char s2[] = " hello, world fin";
- puts(s1);
- puts( del_ch(s1, '_', 3) );
- putchar('\n');
- puts(s2);
- puts( del_ch(s2, ' ', 3) );
- return 0;
- }
Объяснение кода листинга программы
- В функции
del_ch
первым делом инициализируются две переменные: указательp
на первый символ строкиs
и указательt
на начало строкиs
. - В цикле
while
происходит сравнение каждого символа строкиs
с символомc
. Если символы совпадают, то выполняется блок кода, который удаляет все символыc
до тех пор, пока не будет найдет символ, не равныйc
, или пока не будет найдено нужное количество символовc
. - В основной функции
main
сначала выводится исходная строкаs1
, затем строка, полученная после удаления лишних пробелов_hello___world__hello_p______end_____» с помощью функции
del_ch, и в конце выводится символ новой строки
\n`. - Затем выводится исходная строка
s2
, затем строка, полученная после удаления лишних пробеловhello, world fin
с помощью функцииdel_ch
, и в конце выводится символ новой строки\n
. - Функция
del_ch
возвращает указатель на начало строкиs
(т.е. на первый символ).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д