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

Kontrola řetězce v C – C / C++ – Fórum – Programujte.comKontrola řetězce v C – C / C++ – Fórum – Programujte.com

 

Martin1995
~ Anonymní uživatel
2 příspěvky
13. 9. 2015   #1
-
0
-

Dobrý den,

začínám v jazyce C a dostal jsem se k úkolu (bohužel není vyřešený a nemůžu na to přijít) který spočívá v tom, že se napíše část textu na vstup například: "Ahoj 1 čtyři prasátka 8 9" . A výstupem by mělo být: Slovo:Ahoj, Číslo: 1, Slovo: čtyři, Slovo: prasátka, Číslo:8, Číslo: 9.

Vím jak rozeznat znak jestli je číslo nebo písmeno, ale takhle v řetězci po slovech už nevím jak to správně napsat, problém je zřejmě nevhodným načítáním. Proto by mi velmi pomohlo, kdyby zde někdo napsal řešení. Sám to už poté zkusím rozšířit třeba o kontrolu speciálních znaků, počítání slov, vypisování celého textu od zadu atd. Děkuji předem, moc mi to pomůže (lépe se mi učí s kódů nejlépe s komentáři).

Nahlásit jako SPAM
IP: 46.167.212.–
rich10
Duch
13. 9. 2015   #2
-
0
-

Skús prechádzať reťazec znak po znaku. Či už je to cifra alebo nie, do pomocného pointeru si uložíš začiatok (čísla alebo slova), a posúvaš sa v reťazci ďalej, kým nenatrafíš na whitespace znak (medzera, tabulátor, znak nového riadku, ...) alebo na cifru (v prípade, že ide o slovo) alebo na neciferný znak (v prípade, že ide o číslo). Potom vypíšeš časť reťazca ohraničenú pomocným pointerom a aktuálnou pozíciou.

Môže prísť vhod: http://www.cplusplus.com/…ence/cctype/

Nahlásit jako SPAM
IP: 92.52.11.–
ondrej39+1
Věrný člen
13. 9. 2015   #3
-
0
-

#1 Martin1995
Už začaly ve škole domácí úlohy? :D

Domácí úlohu za tebe řešit nehodlám, rich1 už dal nějaké vodítko, já přispěju svým do mlýna.

Vezmi si ten svůj řetězec, který analyzuješ (bude to buď char pointer nebo pole charů), projeď celý ten řetězec for cyklem, dokud nenarazíš na escape znak '\0', kterým se ukončuje řetězec, a za běhu for cyklu v řetezci hledej výskyt znaku mezery. Tím si zjistíš, kde končí, případně začíná další, slovo. Jakým způsobem zjistíš, zda jsou znaky mezi dvěma zjištěnými znaky typu mezera slovo nebo číslo, na to zkus přijít sám.

Nahlásit jako SPAM
IP: 79.141.243.–
Inject all the dependencies!
Martin1995
~ Anonymní uživatel
2 příspěvky
13. 9. 2015   #4
-
0
-

Děkuji za vodítka, pomohli. Úkoly už ve školách pravděpodobně začali, nevím mě škola začíná až na konci září.

Nahlásit jako SPAM
IP: 46.167.212.–
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, 26 hostů

Podobná vlákna

řetězce — založil ench

řetězce — založil ench

[VB] řetězce — založil aTTix

Hledani retezce — založil pazdy

Obracení řetězce — založil Marty

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ý