Страница 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
если я не ошибаюсь, в разделе алгоритмов эта тема рассматривалась.