Četnost písmen v řetězci – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Četnost písmen v řetězci – C / C++ – Fórum – Programujte.comČetnost písmen v řetězci – C / C++ – Fórum – Programujte.com

 

Toom
~ Anonymní uživatel
5 příspěvků
10. 3. 2015   #1
-
0
-

Zdravím, narazil jsem na úlohu k procvičování ale nemohu přijít na to, jak to udělat bez knihovny string.h


Výpis četnosti písmen v řetězci na příklad: "Ahoj jak se mas?" 

a:3
h:1
o:1
j:2
k:1
s:2
e:1

m:1

Nahlásit jako SPAM
IP: 2a00:1028:8d1e:66de:5891:...–
KIIV
~ Moderátor
+43
God of flame
10. 3. 2015   #2
-
0
-

ja zase nemuzu prijit na to, co bys pouzival ze string.h :D

Jedno pole, znak pouzit jako index a inkrementovat

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ondrej39+1
Věrný člen
10. 3. 2015   #3
-
0
-

#1 Toom

Vytvořit si int pole o velikosti 'z' - 'a' a inicializovat ho na nulu. Projet celý řetězec for/while loopem, na každém indexu se podívat, co to je za char a na základě daného charu inkrementovat konkrétní index o jedna.

Ve finále projet původní int pole for loopem, podívat se na počet na daném indexu a když tam bude počet větší než jedna, daný index vypsat s tím, jaké písmeno se tam nachází.

Nahlásit jako SPAM
IP: 195.113.207.–
Inject all the dependencies!
PiranhaGreg0
Stálý člen
10. 3. 2015   #4
-
+1
-
Zajímavé

   

#include <stdio.h>

int main(void) {
	char * retezec = "Ahoj jak se mas?";
	int cetnost[26] = { 0 };
	int i;

	for (i = 0; retezec[i]; i++) {
		if (retezec[i] >= 'a' && retezec[i] <= 'z')
			cetnost[retezec[i] - 'a']++;
		else if (retezec[i] >= 'A' && retezec[i] <= 'Z')
			cetnost[retezec[i] - 'A']++;
	}

	for (i = 0; i < 26; i++)
		printf("%c: %d\n", i + 'a', cetnost[i]);

	return 0;
}
Nahlásit jako SPAM
IP: 109.81.210.–
oxidián0
Grafoman
10. 3. 2015   #5
-
0
-

Použít smyčku a opakovat navyšování tak dlouho dokud nenajdeš znak '\0'. Přitom to navyšování ti počítá bajty za smyčkou pak přičteš 1

Nahlásit jako SPAM
IP: 78.45.199.–
ondrej39+1
Věrný člen
10. 3. 2015   #6
-
0
-

#4 PiranhaGreg
Supr práce, přesně takhle jsem to měl na mysli, akorát bych možná 26 nahradil řetězcem 'z' - 'a', z čehož je více poznat, co dané vzniklé číslo, 26, reprezentuje. :)

Nahlásit jako SPAM
IP: 195.113.207.–
Inject all the dependencies!
oxidián0
Grafoman
10. 3. 2015   #7
-
0
-

A kde máš diakritiku? :D

Nahlásit jako SPAM
IP: 78.45.199.–
PiranhaGreg0
Stálý člen
10. 3. 2015   #8
-
0
-

Do té se mi nechce, protože UTF-8 znaky zabírají 1 - 4 chary a je to pak těžký řešit. Viz. třeba tento článek.

PS: wchar není přenositelný řešení a kódovat to v Windows-1250 nebo něčem podobným už dnes nepřichází v úvahu...

Nahlásit jako SPAM
IP: 109.81.210.–
Toom
~ Anonymní uživatel
5 příspěvků
10. 3. 2015   #9
-
0
-

Díky všem za pomoc! :)

Nahlásit jako SPAM
IP: 2a00:1028:8d1e:66de:5891:...–
oxidián0
Grafoman
11. 3. 2015   #10
-
0
-

Já si taky myslím že pan učitel chtěl písmena anglické abecedy a ne české, ale to v zadání nebylo.

Nahlásit jako SPAM
IP: 78.45.199.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 95 hostů

Podobná vlákna

četnost znaků v řetězci — založil Petr Schenk

Četnost známek — založil cmoudek

Četnost vstupních čísel — založil elijax

Pomoc - Program na četnost — založil Marrek

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý