Zdravim potřeboval bych poradit jak mám udělat program v C# abych na výstupu měl nejčastější znak z řetězce. Když jsou 2 (a více) znaků stejně četné tak aby se vypsal ten, který má v ASCII tabulce menší číslo. Děkuju za radu.
Fórum › C / C++
četnost znaků v řetězci
nevítě někdo? už mám jen 7 a půl hodiny na dokončení tohodle programu a vubec nevim jak na to :-(
#1 Petr Schenk
Co ti dělá problém? Musíš projít řetězec znak po znaku a do nějakého čítače si pamatovat kolikrát jsi který znak viděl. Na konci se podíváš, které znaky mají nejvíc výskytů. Nevím jak je to v C# s unicode znaky, ale pokud budeme předpokládat, že každý znak má 1B, tak bude stačit pole velikosti 255. Vynulujeme ho a pak za každý znak do pole, na pozici ascii hodnoty písmene, přičteme jedničku. Na konci projdeme pole od začátku a zapamatujeme si, kde jsme našli maximum.
a asi by se tu nenašel někdo kdo by věděl jak to napsat a dal to sem co? :-(
Na C# je tady sekce .NET.
string text = Console.ReadLine();
text = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(text));
int[] pocty = new int[128]; // ASCII ma 128 znaku
foreach (char znak in text)
pocty[znak]++;
int maxpocet = 0;
char maxznak = ' ';
for (int i = 0; i < pocty.Length; i++)
{
if (pocty[i] > maxpocet)
{
maxpocet = pocty[i];
maxznak = (char)i;
}
}
Console.WriteLine("text: " + text);
Console.WriteLine("znak: '{0}', pocet: {1}", maxznak, maxpocet);
Console.ReadLine();
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Četnost písmen v řetězci — založil Toom
četnost znaků ve vb6 — založil Milan Pavel
četnost znaků v proměnné — založil Endy
četnost znaků v souboru - C — založil Petra
Nahrazení znaku v řetězci — založil Jakub
Moderátoři diskuze