Удаление лишних пробелов - C (СИ)
Формулировка задачи:
Приветствую.
Все с той же задачей, нужно написать функцию, которая удаляет лишние пробелы из строки. С заданием я справился, но теперь, на основе этой функции Заранее благодарен за помощь.
нужно написать два кода, один с применением индексированных массивов, второй с применением указателей
. Вроде как там нужно заменить несколько строк, но у меня что-то не получилось. Мой код функции:#include<stdio.h>
#include<conio.h>
void main()
{
int s=0;
printf("Input your text:\n");
while ((s = getchar())==' ')
;
putchar(s);
prob(s);
printf("Press any key to exit...");
_getch();
}
int prob(char s)
{
int d;
d = 0;
while ((s = getchar()) != EOF)
{
if (s == ' ')
d++;
if (d <= 1 )
putchar (s);
if (s != ' '&&d > 1)
putchar (s);
if (s != ' ')
d=0;
}
return 0;
}Решение задачи: «Удаление лишних пробелов»
textual
Листинг программы
// ...
#include <string.h>
// ...
int main() {
char text1[256], text2[256];
printf("text: ");
fgets(text1, sizeof(text1), stdin);
strcpy(text2, text1);
printf("func1: %s", func1(text1));
printf("func2: %s", func2(text2));
return 0;
}
Объяснение кода листинга программы
- Включается библиотека string.h, которая содержит функции для работы со строками.
- Создается массив text1 и text2 типа char с размером 256 символов.
- Выводится сообщение
text:и считывается строка с помощью функции fgets в массив text1. - С помощью функции strcpy массив text2 копируется из text1.
- Вызывается функция func1, передавая в качестве аргумента text1, и выводится результат.
- Вызывается функция func2, передавая в качестве аргумента text2, и выводится результат.
- Программа завершается, возвращая 0.