Удаление всех пробелов из строки - C (СИ) (79825)
Формулировка задачи:
Помогите справиться с задачей на языке C.
Нужно из строки удалить все пробелы
самому получилось только удалить пробел из начала строки, но надо из всей строки
#include <stdio.h> #include <conio.h> #include <string.h> void main() { clrscr(); char sst[80]; //входная строка char dst[80]; //результат int i,j; printf("Vvedite stroku: "); i=0; while ((sst[i] = getch()) != 13) putch(sst[i++]); sst[i] = '\0'; i = 0; j = 0; while( sst[i] && sst[i] == ' ') i++; while (sst[i]) dst[j++] = sst[i++]; dst[j] = '\0'; printf("\nStroka bez probelov:%s\n",dst); getch(); }
Решение задачи: «Удаление всех пробелов из строки»
textual
Листинг программы
#include <stdio.h> int main(void) { char src[80]; char dest[80]; int i, j; printf("Введите строку: "); if(fgets(src, sizeof(src), stdin) == NULL || *src == '\n') return 1; for(i = j = 0; src[i] != '\0'; i++) if(src[i] != ' ') dest[j++] = src[i]; dest[j] = '\0'; printf("Получили: %s\n", dest); return 0; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки ввода-вывода
- Объявление двух строк символов (src и dest) по 80 символов каждая
- Объявление двух целочисленных переменных (i и j) для использования в циклах
- Вывод сообщения с просьбой ввести строку
- Проверка корректности ввода строки. Если ввод некорректен, программа завершается
- Начало цикла по символам строки src
- Внутри цикла проверяется, является ли текущий символ пробелом
- Если текущий символ не пробел, он копируется в строку dest
- Переменная j увеличивается на 1 для перехода к следующему символу в строке dest
- Конец цикла по символам строки src
- В конце цикла добавляется символ '\0' в конец строки dest для обозначения конца строки
- Вывод полученной строки
- Программа завершается
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д