Консультант Витте
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1
1

Во введенной пользователем строке удалите все пробелы в начале и конце строки

21.06.2014, 13:29. Показов 2317. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Во введенной пользователем строке удалите все пробелы в начале и конце строки.
Я ищу первый индекс символа не равного пробелу и с конца первый символ не равный пробелу и копирую эту подстроку. Но при выводе этих индексов не то выводится,не пойму..
Код работает когда вводится к примеру так _ _ _ abc _ _ _ выводит abc (Где _ пробел).
Но я хотел чтоб если строка _ _ _ ab_c_ _ _ вывело ab_c что по условию задачи верно,но не то выводит.
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
#include <stdio.h>
#include <conio.h>
#include < stdlib.h>
#include <string.h>
 
void main()
{
    clrscr();
 char   str[100];
 char str2[100];
 int first;
 int last;
 int k=0;
 
    printf("Enter string  ");
    scanf("%s",&str);
    for(int i=0 ;i< strlen(str); i++) {
            if(str[i]!=' ') first=i;
    }
        for(int j=strlen(str)-1 ;j>=0; j--) {
            if(str[j]!=' ') last=j;
    }
        for( i=first ;i<=last; i++) {
            str2[k]=str[i];
            k++;
    }
        printf("%d",first);
    printf("%d",last);
    strcpy(str2,str);
    printf("%s",str);
     getch ();  
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.06.2014, 13:29
Ответы с готовыми решениями:

Удалить пробелы в начале и конце строки
Удалить группу пробелов, с которых, возможно начинается и заканчивается строка строки читаются из...

Функция удаляющая пробелы в начале и в конце строки
Разработайте функцию std::string TrimBlanks(std::string const&amp; str), выполняющую отрезание...

Переписать все строки файла удаляя пробелы в конце каждой строки
Дан текстовый файл F.txt. Переписать все строки файла F.txt в файл G.txt, удаляя все пробелы в...

Переписать все строки файла F.txt в файл G.txt, удаляя все пробелы в конце каждой строки
помогите как можно быстрей Дан текстовый файл F.txt. Переписать все строки файла F.txt в файл...

4
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
21.06.2014, 13:32 2
Может я Вас удивлю, но scanf считывает до разделителя. Считывайте всю строку с помощью gets, например.
Так что это:
Код работает когда вводится к примеру так _ _ _ abc _ _ _ выводит abc (Где _ пробел).
будет работать даже без циклов, ибо разделители вначале игнорируются и в конце тоже.
1
Консультант Витте
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1
21.06.2014, 14:27  [ТС] 3
ввожу _ _ _ abc _ _ _
индекс первый выводит 5
последний 3
хотя должно наооборот,в чем ошибка?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    printf("Enter string  ");
    gets(str);
    //scanf("%s",&str);
    for(int i=0 ;i< strlen(str); i++) {
            if(str[i]!=' ') first=i;
    }
        for(int j=strlen(str)-1 ;j>=0; j--) {
            if(str[j]!=' ') last=j;
    }
        for( i=first ;i<=last; i++) {
            str2[k]=str[i];
            k++;
    }
    printf("%d\n",first);
    printf("%d\n",last);
    strcpy(str2,str);
    printf("%s",str);
0
31 / 31 / 32
Регистрация: 21.06.2014
Сообщений: 81
21.06.2014, 15:44 4
Лучший ответ Сообщение было отмечено DmitryM5 как решение

Решение

У Вас циклы не останавливаются, после нахождения первого "не пробела". Нужно использовать оператор break для выхода из цикла.

C++
1
2
3
4
5
6
 for(int i=0 ;i< strlen(str); i++) {
            if(str[i]!=' ') { first=i; break;}
    }
        for(int j=strlen(str)-1 ;j>=0; j--) {
            if(str[j]!=' ') {last=j; break;}
    }
0
Консультант Витте
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1
21.06.2014, 15:52  [ТС] 5
Спасибо,глупые ошибки допустил.
0
21.06.2014, 15:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2014, 15:52
Помогаю со студенческими работами здесь

Составить программу, удаляющую все пробелы из введенной строки
Составить программу, удаляющие все пробелы из введенной строки freepascal напишите код программы

Заменить все пробелы на запятые, а запятые на точки. Посчитать количество запятых во введенной строке
Во введенной строке заменить все пробелы на запятые, а запятые на точки. Посчитать количество...

Во введенной пользователем строке удалите все пробелы в начале и конце строки
Во введенной пользователем строке удалите все пробелы в начале и конце строки. Вывод на экран...

Во введеной пользователем строке удалите все пробелы
Здравствуйте, можете помочь решить?Я дуб дубом) Во введеной пользователем строке удалите все...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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