Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Neuroart
0 / 0 / 1
Регистрация: 05.11.2015
Сообщений: 9
1

Удалить из строки все первые и последние пробелы

08.11.2015, 08:50. Просмотров 980. Ответов 2
Метки нет (Все метки)

можно пользоваться функциями string.h

Добавлено через 25 минут
С программой, которая удаляет все лишние пробелы вроде разобрался. Проблема в том, что мне не нужно удалять лишние пробелы в середине строки.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2015, 08:50
Ответы с готовыми решениями:

Удалить все пробелы из строки (С++ -> Си)
#include <iostream> int main(int argc, char* argv) { std::string str("Мы все здесь"); ...

Удалить из строки все ведущие и концевые пробелы
Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Удалить из строки...

Удалить из строки все лишние пробелы: в начале, в конце, повторяющиеся
Дана строка предложение. Удалить из строки все лишние пробелы: в начале, в конце, повторяющиеся. ...

Получить новую строку, содержащую первые N1 символов строки S1 и последние N2 символов строки S2
Даны целые положительные числа N1 и N2 и строки S1 и S2. Получить из этих строк новую строку,...

Удалить из матрицы строки и столбцы, последние элементы которых положительны
Доброго времени суток!Помогите пожалуйста написать программу, задание такое: "В основной...

2
Cuellius
188 / 96 / 130
Регистрация: 23.06.2015
Сообщений: 248
Завершенные тесты: 3
08.11.2015, 11:13 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
 
char *ltrim(char *const s)
{
        size_t len;
        char *cur;
 
        if(s && *s) 
        {
                len = strlen(s);
                cur = s;
 
                while(*cur && isspace(*cur))
                        ++cur, --len;
 
                if(s != cur)
                        memmove(s, cur, len + 1);
 
        }
 
        return s;
}
 
char *rtrim(char *const s)
{
        size_t len;
        char *cur;
 
        if(s && *s) 
        {
                len = strlen(s);
                cur = s + len - 1;
 
                while(cur != s && isspace(*cur))
                        --cur, --len;
 
                cur[isspace(*cur) ? 0 : 1] = '\0';
        }
 
        return s;
}
 
char *trim(char *const s)
{
        rtrim(s);
        ltrim(s);
 
        return s;
}
 
int main(int argc, char** argv)
{
    char* st = (char*)malloc(1000);
    strcpy(st, "  re  wtr ");
    trim(st);
    puts(st);
    return 0;
}
1
Neuroart
0 / 0 / 1
Регистрация: 05.11.2015
Сообщений: 9
09.11.2015, 19:20  [ТС] 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Красивый код. Но мне надо что-нибудь попроще.
Типа такого:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include  <stdio.h>
#include <string.h> 
main() 
{
    char string[100];
    printf("Enter string:");
    fgets (string, 100, stdin);
    int i; 
    int j = 0;
        for (i = 0; string[i] != '\0'; i++) 
        {  
        if(string[i] == ' ') continue; 
        string[j++] = string[i];
        string[j] = '\0';
        }
printf("%s", string);
return 0;
}
только, что бы не удалял пробелы в середине.

Добавлено через 3 часа 33 минуты
остановился на таком варианте
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
#include  <stdio.h>
#include <string.h> 
main() 
{
    char string[100];
    char result[100];
    printf("Enter string:");
    fgets (string, 100, stdin);
    int i; 
    int j = 0;
    for (i = 0; i<strlen(string) ; i++) 
        {  
        if(string[i] == ' ')
            {
            if (j==0) continue;
            if (string[i+1] == ' ') continue;
            }
        result[j] = string[i];
            j++;
        }
        i=strlen(result);
        if(result[i-2] == ' ')
        result[i-2] = '\0';
printf("%s", result);
return 0;
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2015, 19:20

Удалить из файла с текстом все лишние пробелы
удалить из файла с текстом все лишние пробелы. Оставшееся переписать во второй файл

Как из строки удалить начальные и конечные пробелы?
удалить начальные и конечные пробелы?? Добавлено через 1 час 52 минуты 6 секунд Как...

Удалить из файла все однобуквенные слова и лишние пробелы
Дан символьный файл f. Группы символов, разделенные пробелами (одним или несколькими) и не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.