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

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

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

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста
написать программу, которая удаляет конечные пробелы из введенной с клавиатуры строки.
Без динамического массива, через char, без использования функций
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2018, 15:20
Ответы с готовыми решениями:

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

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

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

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

11
Диссидент
Эксперт C
27709 / 17325 / 3811
Регистрация: 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
27709 / 17325 / 3811
Регистрация: 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
27709 / 17325 / 3811
Регистрация: 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
27709 / 17325 / 3811
Регистрация: 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
27709 / 17325 / 3811
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2018, 20:14
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru