Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 28
1

Удаление конечного пробела из строки

06.12.2018, 15:20. Показов 2046. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста
написать программу, которая удаляет конечные пробелы из введенной с клавиатуры строки.
Без динамического массива, через char, без использования функций
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2018, 15:20
Ответы с готовыми решениями:

Удаление пробела из строки
Задача удалить все пробелы из строки file_name. Проблема в том, если удалять пробел, то программа...

Удаление символа из строки после пробела
Здравствуйте, проблемы с решением такого задания : Дана строка символов, состоящая из произвольного...

Удаление до пробела из строки и вывод в checkedListBox
Есть "программа" которая по кнопке загружает из файла .csv данные и выводит в checkedListBox. Но...

Удаление строки до последнего пробела (включительно)
День добрый всем! Дана строка, содержащая слова отделенные одним или несколькими пробелами....

11
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
06.12.2018, 16:13 2
C
1
2
3
4
char s[1000];
scanf("%s", s);
for(i=strlen(s) - 1; i>=0; i--)
  if (s[i]== ' ') s[i] = '\0';
1
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 28
06.12.2018, 16:17  [ТС] 3
прошу прощения за наглость а можно выложить полный код программы?
0
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 28
06.12.2018, 16:22  [ТС] 4
Если вы про полное задание то оно так и звучит,
Написать программу, которая удаляет конечные пробелы из введенной с клавиатуры строки
(просто очень долго мучалась с предущей программой с обычными массивами, на данный момент строки не осилила)
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
06.12.2018, 16:25 5
Цитата Сообщение от tasha77 Посмотреть сообщение
Если вы про полное задание
Нет, задание вполне понятно. Я не знаю, как у вас принято такие задания решать. И не хочу учить вас ненужному
0
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 28
06.12.2018, 18:38  [ТС] 6
К сожалению тему не объясняли вообще и изучаем язык Си++,а требуют писать на Си
Лучше уж научиться "не нужному", потом пригодиться

Добавлено через 55 минут
Байт, убрать начальные пробелы выходит а с конечными нет
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>                              
#include <stdlib.h>  
#include <string.h>                              
#include <conio.h>  
int main ()
{
 
int i,j;
char s[100];
char ds[100];
printf ("\nvvedite stroku:\n");
i=0;
while ((s[i]=getch()) !=13)
putch (s[i++]);
s[i]='\0';
printf("\n nah probelov:%s\n",s);
 
i=0;
j=0;
while (s[i]&&s[i]==' ')
i++;
while (s[i])
ds[j++]=s[i++];
ds[j]='\0';
printf("\nbez nah probelov:%s\n",ds);
 
  return 0;
}
Добавлено через 21 минуту
а как проверить удаляет пробелы конечные или нет?
начальные видно что удаляет
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>                              
#include <stdlib.h>  
#include <string.h>                              
#include <conio.h>  
int main ()
{
 
int i,j;
char s[100];
char ds[100];
char ps[100];
printf ("\nvvedite stroku:\n");
i=0;
while ((s[i]=getch()) !=13)
putch (s[i++]);
s[i]='\0';
printf("\n nah probelov:%s\n",s);
 
i=0;
j=0;
while (s[i]&&s[i]==' ')
i++;
while (s[i])
ds[j++]=s[i++];
ds[j]='\0';
printf("\nbez nah probelov:%s\n",ds);
 
i=0;
j=0;
for(i=strlen(s) - 1; i>=0; i--)
if (s[i]== ' ')
 
 
 s[i] = '\0';
 printf("\nbez kon probelov:%s\n",ds);
  return 0;
}
Добавлено через 9 минут
и появился вопрос scanf("%s",s) считывает до пробельного символа? а gets(s) до конца строки?

Добавлено через 43 минуты
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>                              
#include <stdlib.h>  
#include <string.h>                              
#include <conio.h>  
int main ()
{
 
int i;
char s[1000];
printf ("\nvvedite stroku:\n");
i=0;
while ((s[i]=getch()) !=13)
putch (s[i++]);
printf("\nstroka:%s\n",s);
for(i=strlen(s) - 1; i>=0; i--)
if (s[i]== ' ')
 s[i] = '\0';
 printf("\nbez kon probelov:%s\n",s);
  return 0;
}
так удаляет все после первого пробела
помогите исправить пожалуйста
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
06.12.2018, 19:31 7
Лучший ответ Сообщение было отмечено tasha77 как решение

Решение

Цитата Сообщение от tasha77 Посмотреть сообщение
вопрос scanf("%s",s) считывает до пробельного символа
Тут, увы, не скажу. Сам этим scanf-ом давно не пользовался.
А вот твой последний код надо немного подправить. (Каюсь, моя вина.)
строчки 15-17 должны выглядеть так
C
1
2
3
4
5
6
7
8
for(i=strlen(s) - 1; i>=0; i--)
  if (s[i]== ' ')
    s[i] = '\0';
  else
    break;
// или так
for(i=strlen(s) - 1; i>=0 && s[i]==' '; i--)
    s[i] = '\0';
1
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 28
06.12.2018, 19:43  [ТС] 8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>                              
#include <stdlib.h>  
#include <string.h>                              
#include <conio.h>  
int main ()
{
 
int i;
char s[1000];
printf ("\nvvedite stroku:\n");
i=0;
while ((s[i]=getch()) !=13)
putch (s[i++]);
printf("\nstroka:%s\n",s);
for(i=strlen(s) - 1; i>=0; i--)
  if (s[i]== ' ')
    s[i] = '\0';
  else
    break;
 printf("\nbez kon probelov:%s\n",s);
 
  return 0;
}
а как показать удаляет или нет, чтобы видно было, попробовала * прилепить на вывод после удаления ..почему то не вышло
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
06.12.2018, 19:48 9
tasha77, понятно, что если ты печатаешь строку до и после удаления пробелов, то получишь одно и тоже. Пробелы-то не видны.
Цитата Сообщение от tasha77 Посмотреть сообщение
попробовала * прилепить на вывод после удаления
Идея здравая. Я бы сделал так
C
1
2
3
printf("\nstroka:%s*\n",s);
// удаление
printf("\nbez kon probelov:%s*\n",s);
1
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 28
06.12.2018, 19:53  [ТС] 10
* почему то перед строкой выводится а не после
у меня тоже перед выводилась поэтому и писала что не смогла
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
06.12.2018, 19:59 11
Цитата Сообщение от tasha77 Посмотреть сообщение
* почему то перед строкой выводится а не после
Очень странно... Попробуй вместо звездочки - точку...
1
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 28
06.12.2018, 20:14  [ТС] 12
так же не выходит, другие знаки тоже

Добавлено через 8 минут
изменила способ ввода строки и отдельно после сток на выводе вывела *
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>                              
#include <stdlib.h>  
#include <string.h>                              
#include <conio.h>  
int main ()
{
 
int i;
char s[1000];
printf ("\nvvedite stroku:\n");
i=0;
gets (s);
printf("\nstroka:%s",s);
printf("*");
 
for(i=strlen(s) - 1; i>=0; i--)
  if (s[i]== ' ')
    s[i] = '\0';
  else
    break;
 printf("\nbez kon probelov:%s",s);
 printf("*");
 
  return 0;
}
вроде работает
спасибо большое за помощь, без вас бы не сделала
0
06.12.2018, 20:14
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2018, 20:14
Помогаю со студенческими работами здесь

Удаление пробела(ов)
когда начинают вносить данные (ФИО) часто вносят и с маленькой буквы, и пробелы поставят &quot; ...

Удаление пробела
Добрый ночи. Такой вопрос, есть система поиска, пользователь вводит информацию и нажимает...

Удаление пробела из вектора
Доброго времени суток! Стоит задача: удалить все пробелы из вектора. Собственно программа не...

Удаление символов возле пробела
Ребята, привет! Нужно чтобы после ввода текста, при нажатии клавиши, из текста удалялись символы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Преобразование полей (элементов управления содержимым) в обычный текст
РоΜа 23.01.2025
Возникла необходимость преобразовать поля в текст (те, что на вкладке разработчик добавляются) . Помучившись родил следующее: Sub ПоляВТекст() Преобразует все поля в текст (даты, текст,. . .
Как проверить существование директории в скрипте Bash
bt_guru 23.01.2025
При разработке скриптов Bash одной из ключевых задач является корректная работа с файловой системой, где особое место занимает проверка существования директорий. Эта операция становится критически. . .
Как работают срезы (slice) в Python
bytestream 23.01.2025
Python предоставляет разработчикам мощный и гибкий инструмент для работы с последовательностями данных - срезы (slices). Эта функциональность позволяет извлекать, модифицировать и управлять. . .
Как удалить подмодуль (submodule) в Git
bytestream 23.01.2025
При работе с крупными проектами в системе контроля версий Git разработчики часто сталкиваются с необходимостью управления зависимостями и внешними компонентами. Подмодули (submodules) представляют. . .
В чем разница между @staticmethod и @classmethod в Python. Декораторы методов
bytestream 23.01.2025
В Python декораторы методов представляют собой мощный инструмент, позволяющий модифицировать поведение функций и методов без изменения их исходного кода. Эта возможность является одной из. . .
Как преобразовать InputStream в String в Java
bytestream 23.01.2025
В мире Java-разработки работа с потоками данных является одной из ключевых операций при создании современных приложений. InputStream, как фундаментальный класс для обработки входных потоков данных,. . .
Как обновить форк (ответвление) репозитория в Git
bytestream 23.01.2025
Одним из наиболее мощных инструментов Git для организации совместной работы является механизм форкинга репозиториев, который позволяет создавать независимые копии проектов для дальнейшей разработки. . . .
Как работает async/await в C#. Асинхронное программировани­е в .NET
bytestream 23.01.2025
Введение в асинхронное программирование Асинхронное программирование представляет собой важнейшую концепцию современной разработки программного обеспечения, особенно в контексте создания. . .
КуМир: полное руководство
bytestream 23.01.2025
Введение в КуМир: история создания и назначение КуМир (Комплект Учебных МИров) представляет собой образовательную среду программирования, которая была создана для обучения основам алгоритмизации и. . .
Что такое OLAP. Где и как использовать многомерный анализ данных
bytestream 23.01.2025
Введение в OLAP-технологии В современном мире бизнес-аналитика и обработка больших массивов данных играют ключевую роль в принятии стратегических решений. Организации накапливают огромные объемы. . .
MongoDB: что это, для чего нужна и как использовать
bytestream 23.01.2025
Введение в MongoDB: современная документоориентированная СУБД В современном мире разработки программного обеспечения выбор правильной системы управления базами данных является критически важным. . .
Как использовать закрытый ключ шифрования в Git. Шифрование в Git
bytestream 23.01.2025
Установка и настройка закрытых ключей в Git предоставляет дополнительный уровень безопасности для работы с репозиториями. Для начала необходимо создать пару ключей, обычно это осуществляется с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru