Удалить из строки все первые и последние пробелы - C (СИ)
Формулировка задачи:
можно пользоваться функциями string.h
С программой, которая удаляет все лишние пробелы вроде разобрался. Проблема в том, что мне не нужно удалять лишние пробелы в середине строки.
Решение задачи: «Удалить из строки все первые и последние пробелы»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
main()
{
char string[100];
printf("Enter string:");
fgets (string, 100, stdin);
int i;
int j = 0;
for (i = 0; string[i] != '\0'; i++)
{
if(string[i] == ' ') continue;
string[j++] = string[i];
string[j] = '\0';
}
printf("%s", string);
return 0;
}
Объяснение кода листинга программы
- В начале кода подключаются две библиотеки: стандартная библиотека языка C (stdio.h) и библиотека для работы со строками (string.h).
- Затем идет объявление функции main(), которая является точкой входа в программу.
- Внутри функции main() объявляется массив типа char с именем string, который может хранить до 100 символов.
- Далее пользователю предлагается ввести строку, которую он хочет обработать. Для этого используется функция fgets().
- После чтения строки, в цикле for перебираются все символы строки, начиная с первого и до последнего.
- Внутри цикла проверяется, является ли текущий символ пробелом. Если это так, то цикл пропускает этот символ и переходит к следующему.
- Если текущий символ не является пробелом, то он копируется в новый массив, начиная с индекса j и увеличивается на единицу после каждой операции копирования.
- После обработки всех символов исходной строки, в новом массиве добавляется нулевой символ, чтобы обозначить конец строки.
- Наконец, новая строка выводится на экран с помощью функции printf().
- В конце функции main() возвращается 0, что означает успешное выполнение программы.