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

Очень нужно написать программу, которая удаляет лишние пробелы в тексте: 2 и более пробелов заменяются одним

17.12.2012, 19:28. Просмотров 1444. Ответов 3
Метки нет (Все метки)

Помогите, пожалуйста, написать программу (есть часа 3-4, после этого можно не пытаться)), которая, запросив у пользователя максимально 9 строк длиной до 72 символов каждая, анализирует их и выводит на экран выходные строки с удаленными лишними пробелами: 2 и более пробелов заменяются одним.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2012, 19:28
Ответы с готовыми решениями:

В заданной строке удалить все лишние пробелы, заменяя несколько подряд идущих пробелов одним
Добрый день. Столкнулся с проблемой в программе. Пробелы удаляет, но если ввести пробелы перед...

Написать программу, которая удаляет пробелы из введенной с клавиатуры строки
Написать программу, которая удаляет пробелы из введенной с клавиатуры строки.

Написать программу, которая удаляет лишние пробелы из предложения
Помогите написать программу, которая удаляет лишние пробелы из предложения (между словами 1...

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

Создать программу, которая удаляет все пробелы в тексте
Создать программу, которая удаляет все пробелы в тексте.

3
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10296 / 6178 / 1555
Регистрация: 25.07.2009
Сообщений: 11,761
17.12.2012, 19:31 2
Рядом тема лежит: http://www.cyberforum.ru/post3871510.html
придумайте, как 9 строк прочитать...
0
Ally
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 4
17.12.2012, 22:59  [ТС] 3
я просмотрела эту тему, когда у мея уже был свой вариант кода, к сожалению. сейчас проблема в том, что после выполнения необходимого на экран выводится еще и мусор. В чем проблема? Или здесь вообще все не верно?
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
#include <CONIO.H>
#include <STRING.H>
#include <STDIO.H>
 
void main(void)
{
 
char N[10][73];
int i=0;
char S[73];
int k=0;
char *QUERY = "Введите текст";
printf("\n%s\n", QUERY); 
 
 
    k=0;
do
{
    fflush(stdin);
    gets(S);
    i=0;
    while(i<73)
    {
    if(S[i] != '0' &&  S[i]!= '!')
    N[k][i]=S[i];
    else N[k][i]=' ';
    i++;
    };
    k++;
 
}
while(S[0]!= '!');
 
 
 
i=0;
k=0;
for(k=0; k<10; k++)
    for(i=0; i<73; i++)
    {
    if(N[k][i] != ' ' ||  N[k][i-1] != ' ')
    putchar(N[k][i]);
    } ;
getch();
}
Добавлено через 2 часа 52 минуты
В общем до завтрашнего дня все еще не теряю надежды увидеть ответ на мой глупый вопрос. Нет - значит не судьба) Спасибо за помощь.
0
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10296 / 6178 / 1555
Регистрация: 25.07.2009
Сообщений: 11,761
18.12.2012, 00:18 4
Цитата Сообщение от Ally Посмотреть сообщение
Или здесь вообще все не верно?
Ну не то, чтобы совсем всё, но очень многое. Вот Вам работающий пример с функцией из поста по ссылке:
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
char * squeeze_spaces(char * s) {
    char * p;
    
    for ( p = s; *p; ++p )
        if ( *p == ' ' )
            while ( *(p + 1) == ' ' )
                memmove(p + 1, p + 2, strlen(p + 1));
    
    return s;
}
 
#define STRING_LENGTH 73
#define GET_STRING(s) ( scanf("%72[^\n]%*c", (s)) == 1 )
#define NUM_STRINGS 9
 
int main(void) {
    char strings[NUM_STRINGS][STRING_LENGTH];
    int i;
    
    for ( i = 0; i < NUM_STRINGS; ++i ) {
        printf("String #%d: ", i + 1);
        if ( ! GET_STRING(strings[i]) ) {
            fprintf(stderr, "Input error!\n");
            exit(1);
        }
    }
    
    printf("\nSqueezed spaces:\n");
    for ( i = 0; i < NUM_STRINGS; ++i )
        printf("%s\n", squeeze_spaces(strings[i]));
    
    system("pause");
    exit(0);
}
1
18.12.2012, 00:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2012, 00:18

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

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

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


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

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

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