Удалить из строки все лишние пробелы: в начале, в конце, повторяющиеся - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана строка предложение. Удалить из строки все лишние пробелы: в начале, в конце, повторяющиеся. Не могу понять, как удалить все пробелы в начале и в конце.
Листинг программы
  1. #include <stdio.h>
  2. #include <locale.h>
  3. int main(int argc, char *argv[])
  4. {
  5. setlocale(LC_ALL,"");
  6. char str[101];
  7. printf ("Введите строку:");
  8. gets(str);
  9. int j=1;
  10. for (int i=1; str[i]!=0; i++) {
  11. if((str[i] == ' ') && (str[i-1]==' ')) continue;
  12. str[j++] = str[i];
  13. }
  14. if (str[j-1]==' ') j--;
  15. str[j] = 0;
  16. printf("Результат:"); puts(str);
  17. }

Решение задачи: «Удалить из строки все лишние пробелы: в начале, в конце, повторяющиеся»

textual
Листинг программы
  1. #include  <stdio.h>
  2. #include <locale.h>
  3. #include <string.h>
  4.  
  5. int main(int argc, char *argv[]) {
  6.     setlocale(LC_ALL,"");
  7.     char str[101] = "";
  8.     char res[101] = "";
  9.    
  10.     printf("Введите строку:");
  11.     fgets (str, 101, stdin);
  12.    
  13.    
  14.     int j = 0;
  15.     int i;
  16.     for (i = 0; i<strlen(str) ; i++) {
  17.         if (str[i] == ' ')
  18.         {
  19.           if (j==0) continue;
  20.           if (str[i+1] == ' ') continue;
  21.         }
  22.         res[j] = str[i];
  23.         j++;
  24.     }
  25.     i=strlen(res);
  26.     if(res[i-2] == ' ')
  27.         res[i-2] = '\0';
  28.  
  29.     printf("\nРезультат:%s", res);
  30.     getchar();
  31. }

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы со строками и вводом/выводом.
  2. Установка локали на русскую.
  3. Объявление двух буферов для хранения исходной и результирующей строк.
  4. Ввод исходной строки с помощью функции fgets.
  5. Проход по всем символам исходной строки.
  6. Удаление лишних пробелов в начале, в конце и между повторяющимися пробелами.
  7. Копирование обработанных символов в результирующую строку.
  8. Удаление последнего лишнего пробела в результирующей строке.
  9. Вывод результирующей строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы