Страница 1 из 1

Подсчет количества разных символов в тексте

Добавлено: 16 апр 2008, 12:07
litis
Помогите, пожалуйста решить эту задачу, заранее спасибо!
Определите какие символы и сколько раз встречаються в тексте.

Re: Задача

Добавлено: 16 апр 2008, 17:07
MOTOCoder
Создать массив из 256 элементов типа Integer.
Дальше брать каждый символ текста и повышать на единицу элемент массива с индексом этого символа. Дальше вывести значения всех элементов, не равных 0.

Re: Задача

Добавлено: 16 апр 2008, 17:34
BHy4ok
litis писал(а):Помогите, пожалуйста решить эту задачу, заранее спасибо!
Определите какие символы и сколько раз встречаються в тексте.

Делфи, паскаль ?

Re: Подсчет количества разных символов в тексте

Добавлено: 17 апр 2008, 11:05
Хыиуду
Переименовал тему

Re: Подсчет количества разных символов в тексте

Добавлено: 19 апр 2008, 19:54
un4-funeral
в тексте? в смысле в текстовом файле ? хотя не важно

в своё время делал для интереса...не откопал исходник


Код: Выделить всё

//---------------------------------------------------------------------------

#include <vcl.h>
#include <stdio.h>
#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;


struct simvoli
        {
        char s;
        int kol;
        };


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void kol_sim(AnsiString str)
{
simvoli sim[200];     //Массив структур, содержащий символы и их количество
int point;

point=0;              //Число символов
//Занос неповторяющихся символов в массив
for (int i=1;i<=str.Length();++i)
        {
        int fl;
        fl=0;
        for (int j=0;j<point;++j)
                {
                if (str[i]==sim[j].s)
                        ++fl;
                }
        if (fl==0)
                {
                sim[point].s=str[i];
                sim[point].kol=1;
                ++point;
                }
        }


//Подсчёт количества
for (int j=0;j<point;++j)
        {
        int kol;
        kol=0;
        for (int i=1;i<=str.Length();++i)
                {
                if (str[i]==sim[j].s)
                        ++kol;
                }
        sim[j].kol=kol;
        }
//Вывод в Edit2
for (int i=0;i<point;++i)
        {
        Form1->Edit2->Text=Form1->Edit2->Text+sim[i].s;
        Form1->Edit2->Text=Form1->Edit2->Text+sim[i].kol;
        }

}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
kol_sim(Edit1->Text);

}
//---------------------------------------------------------------------------


вообще мы в void kol_sim(AnsiString str) отправляем строк и производим с ней действия
писал на скорую руку...так что сорь, если нерационально =)

Re: Подсчет количества разных символов в тексте

Добавлено: 20 апр 2008, 09:37
Oleg_Rus
если я не ошибаюсь, в разделе алгоритмов эта тема рассматривалась.