Удалить все символы из строки, и вывести строку на экран - C (СИ)
Формулировка задачи:
необходимо удалить все символы из строки, и вывести строку на экран
Будет ли работать?
Проверьте пожалуйста, у меня сейчас нет возможности, и если не правильно, напишите как правильно
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main()
{
int len = 0, st = 0;
gets(str);
for (int i = 0; str[i] != 0; i++)
{
len++;
for (int i = 0; i < len; i++)
if (str[i] == ' ')
st++;
else
{
str[i - st] = str[i];
str[i] = ' ';
}
}
printf("%s", str);
}
Проверьте пожалуйста, у меня сейчас нет возможности, и если не правильно, напишите как правильно[/QUOTE]
то есть пробелы нужно удалить
Решение задачи: «Удалить все символы из строки, и вывести строку на экран»
textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char *str;
char *result;
int i, n;
gets(str);
for (int i = 0; i < strlen(str); i++)
{
if (str[i] != ' ')
{
result[n] = str[i];
n++;
}
}
printf("%s", result);
//Если несколько строк подряд без завершения программы то надо массив очищать после вывода на екран
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdio.h, stdlib.h, string.h
- Объявление переменных:
- str - указатель на строку, содержащую символы для обработки;
- result - указатель на результирующую строку;
- i, n - индексы для обхода строк;
- Получение строки от пользователя с помощью функции gets(str);
- Обход каждого символа входной строки:
- Если символ не равен пробелу, то он добавляется в результирующую строку;
- Вывод результирующей строки на экран с помощью функции printf(
%s, result); - Очистка памяти от выделенных указателей на строки.
- Возврат 0, что означает успешное завершение программы.