1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 40
1

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

19.01.2010, 17:47. Показов 2852. Ответов 32
Метки нет (Все метки)

1. Определить какие символы и сколько раз встречаются в тексте.
Или
2. В тексте убрать лишние пробелы и разделительные символы, оставив между словами только по одному пробелу.
Нужна помощь. Текст должен считываться из файла. Заранее благодарю, завтра сдавать надо, а то бы не спрашивал, сам сделал.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2010, 17:47
Ответы с готовыми решениями:

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

В тексте убрать лишние пробелы между словами, оставив по одному
Составить программу обработки строк. Текст помещать в Memo. В тексте убрать лишние пробелы между...

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

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

32
3 / 3 / 1
Регистрация: 19.01.2010
Сообщений: 26
19.01.2010, 17:54 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define MAXLEN 255 //длина строки
int main()
{
        char str[MAXLEN];//вводимая строка
        int Count[MAXLEN];//счетчик для каждого символа
        int i;//счетчик
        for(i=0;i<MAXLEN;i++)
                Count[i]=0;//обнуление массива
        printf("Please enter a string:\n");
        gets(str);//ввод строки
        int len=strlen(str);//кол-во введенных символов
        for(i=0;i<len;i++)
                Count[str[i]]++;//увеличение счетчика для i-го сивола
        for(i=0;i<MAXLEN;i++)
                if(Count[i])printf("%c-%d\n",i,Count[i]);//вывод если не ноль
        getch();
return 0;
}
ну думаю, что считать с файла уже сможешь сам)
2
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 40
19.01.2010, 19:44  [ТС] 3
что то не получается)))
0
3 / 3 / 1
Регистрация: 19.01.2010
Сообщений: 26
19.01.2010, 19:49 4
что именно?
0
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 40
19.01.2010, 19:55  [ТС] 5
ну пишет что то про преобразование типов...выкладывать свое не буду, там бессмысленно, это 5 строчек
0
3 / 3 / 1
Регистрация: 19.01.2010
Сообщений: 26
19.01.2010, 20:22 6
лучше бы выложили, яснее было б в чем проблема.
код рабочий.
0
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 40
19.01.2010, 20:40  [ТС] 7
нет не работает вместе в моим "считыванием из файла", а так все работает
0
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
19.01.2010, 20:44 8
ну выложите ваш код. Так же фиг поймёшь в чём у вас проблема!
1
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 40
19.01.2010, 20:52  [ТС] 9
да его выкладывать чисто чтобы вам посмеяться))
0
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
19.01.2010, 20:54 10
хм...посмотри у меня в профиле мои темы...с чего я начинал. Не было ничего смешного.
0
1260 / 798 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
19.01.2010, 21:00 11
Что решаем бестолку, исходник надо видеть, раз ошибка после внесения новшеств.

Добавлено через 1 минуту
mybabloo сам такой логин придумал.
0
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 40
19.01.2010, 21:10  [ТС] 12
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 fflush(stdin);
 clrscr ();
 FILE *F;
 char ch, *text=(char *)malloc(sizeof (char));
 int length=0;
 FILE *f;
 if(!(f = fopen("1.txt", "rt"))) {printf("cant open this file");}
 
 
    while ((ch=getc (f))!=EOF)
    {
        text=(char*) realloc (text, (length+2)*sizeof (char));
        text [length++]=ch;
    }
ну вот это дописал сверху.

Добавлено через 7 минут
соответственно подключив stdlib
0
1260 / 798 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
19.01.2010, 21:14 13
Пожалуйста собери сюда весь текст

Добавлено через 46 секунд
Я хоть с отладчиком проверю в каком месте затык
0
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 40
19.01.2010, 21:21  [ТС] 14
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<conio.h>
#include<string.h>
#include <stdlib.h>
#define MAXLEN 255 //длина строки
int main()
{
 
 fflush(stdin);
 clrscr ();
 FILE *F;
 char ch, *text=(char *)malloc(sizeof (char));
 int length=0;
 FILE *f;
 if(!(f = fopen("1.txt", "rt"))) {printf("cant open this file");}
 
 
    while ((ch=getc (f))!=EOF)
    {
        text=(char*) realloc (text, (length+2)*sizeof (char));
        text [length++]=ch;
    }
        
        char str[MAXLEN];//вводимая строка
        int Count[MAXLEN];//счетчик для каждого символа
        int i;//счетчик
        for(i=0;i<MAXLEN;i++)
                Count[i]=0;//обнуление массива
 
        int len=strlen(ch);//кол-во введенных символов
        for(i=0;i<len;i++)
                Count[ch[i]]++;//увеличение счетчика для i-го сивола
        for(i=0;i<MAXLEN;i++)
                if(Count[i])printf("%c-%d\n",i,Count[i]);//вывод если не ноль
        getch();
return 0;
}
0
1260 / 798 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
19.01.2010, 21:31 15
int len=strlen(ch); //Это по твойму длинна буффера.
0
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 40
19.01.2010, 21:34  [ТС] 16
ну а как исправить?
0
1260 / 798 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
19.01.2010, 21:35 17
char str[MAXLEN]; //а это зачем, где это применяется

Добавлено через 1 минуту
В чём смыл проги, вывести текст из файла, или что?
0
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 40
19.01.2010, 21:37  [ТС] 18
это я не удалил)))смысл считать текст из файла и вывести какие и сколько символов встречаются в тексте
0
1260 / 798 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
19.01.2010, 21:55 19
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Сейчас переделаю на свой вкус

Добавлено через 11 минут
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<string.h>
#include <stdlib.h>
 
int main()
{
 FILE *F = NULL;
 char ch, *text=(char *)malloc(sizeof (char));
 int length=0;
 FILE *f;
 if(!(f = fopen("C:\\vv.txt", "rt"))) {printf("cant open this file");}
        while ((ch=getc (f))!=EOF)
        {
                text=(char*) realloc (text, (length+2)*sizeof (char));
                text [length++]=ch;
        }
 
        fclose(f);    //закрываем поток
 
        //вывод количества символов
        printf("colvо symbols\t"); 
        printf("%d",length);
        printf("\n");
        for(int i=0;i<length;i++)printf("%c",text[i]);
        getch();
 
free(text);       //освобождение память из под буффера
text = NULL;
 
return 0;
}
Добавлено через 2 минуты
Вроде приближено к сути
0
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 40
19.01.2010, 22:06  [ТС] 20
теперь надо попытаться присобачить счетчик каждого символа по-отдельности...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2010, 22:06
Помогаю со студенческими работами здесь

В тексте убрать лишние пробелы между словами, оставив по одному
1. В тексте убрать лишние пробелы между словами, оставив по одному.

Убрать лишние пробелы
Введите массив символов из n элементов. Убрать лишние пробелы (более одного подряд).

Убрать лишние пробелы
Дело в том, что в строке мне нужно убрать все пробелы до первого символа кроме пробела, после...

Убрать лишние пробелы
отформотировать строку 1)убрать все лишние пробелы 2) убрать 1 пробел после знака препинания ...


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

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

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