Удаление всех пробелов из строки - 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 для обозначения конца строки
- Вывод полученной строки
- Программа завершается