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í