Navigace: Hlavní stránka -> Jazyk C -> 05 Jednorozměrná pole -> 05.07 Určování četností znaků v textu

MENU

05.07 Určování četností znaků v textu

Zadání:
Sestavte program, který ze zadaného textu (max. 80 znaku bez českých) určí četnosti jednotlivých znaků
Řešení:
Po zadání textu (pro jednoduchost předpokládáme malá písmena anglické abecedy) pomocí cyklu FOR vynulujeme
pole četností jednotlivých znaků (pole četností má indexy v intervalu 97..122 = pořadí malých písmen anglické
abecedy v ASCII tabulce). Poté pomocí druhého cyklu FOR pro každý znak v textovém řetězci zjistíme pořadové číslo
znaku v ASCII tabulce (funkcí ASC) a inkrementujeme příslušný prvek v poli četností. Na konci programu pomocí
cyklu FOR vytiskneme pouze ty četnosti znaků, které mají nenulovou hodnotu.
#include "stdafx.h"
#include "math.h"
#include 
#include 

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int cetnosti[123];
    int i;
    char retezec[80];

    printf("Zadejte textovy retezec: ");
    gets_s(retezec);

    for (i=0;i<123;i++) cetnosti[i]=0;

    for (i=0;i<(int)strlen(retezec);i++)
		cetnosti[(int)(retezec[i])]++;

    printf("\nCetnosti:\n");

    for (i=0;i<123;i++)
		if (cetnosti[i]!=0) printf("%c: %d\n" ,(char)(i),cetnosti[i]);

    system("pause");
	return 0;
}
program ke stažení