NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Jan Tomek
Člen
Avatar
Jan Tomek:23.1.2018 19:40

Ahoj

Obdržel jsem domácí úkol a nevím si s ním rady, mohl by mi někdo prosím poradit?
Zadání zní:

Napište program, který ze vstupu přečte větu (text ukončený tečkou) a vypíše poslední souhlásku ze zadané věty. Příklad ===== Vstup: Ahoj, jak se mas? Výstup: Poslední souhlaska je: s. Vstup: Toto je veticka. Výstup: Poslední souhláska je: k.

 
Odpovědět
23.1.2018 19:40
Avatar
Martin Petrovaj
Tvůrce
Avatar
Odpovídá na Jan Tomek
Martin Petrovaj:23.1.2018 19:55

Ako najviac straight-forward riešenia mi príde zavolať na vstupnom stringu metódu find_last_of:
http://www.cplusplus.com/…ind_last_of/

Tá berie ako argument string so všetkými znakmi, ktoré v reťazci hľadáš (v tvojom prípade reťazec so všetkými spoluhláskami) a vráti index posledného nájdeného zhodujúceho sa znaku v reťazci. Pokiaľ žiaden znak z argumentu v prehľadávanom stringu nenájde, vráti nejakú "blbosť", nezmyselne veľké číslo, ktoré bude určite väčšie ako dĺžka tvojho prehľadávaného stringu zo vstupu. Clear enough?

Nahoru Odpovědět
23.1.2018 19:55
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Odpovídá na Martin Petrovaj
Erik Šťastný:24.1.2018 8:07

Hádám, že pokud jde o úkol do školy, tak po něm budou chtít algoritmus a ne vygooglení a zavolání jedné metody :)

 
Nahoru Odpovědět
24.1.2018 8:07
Avatar
Martin Petrovaj
Tvůrce
Avatar
Odpovídá na Erik Šťastný
Martin Petrovaj:24.1.2018 8:32

Tak nepovedal, či berú cykly alebo reťazce ;-) A pokiaľ by ešte reťazce a ich metódy nebrali, tak neviem, či by vedel aspoň niečo o indexovaní a aby mal nejaký (predpokladám) stredoškolský učiteľ prehľad v nových štandardoch... Ja som len napísal podľa mňa najčitateľnejší a najrýchlejší spôsob, ktorý je 100% valídny a dosiahol by ním prinajmenšom rovnaký alebo podobný výsledok ako vlastným cyklom.

Nahoru Odpovědět
24.1.2018 8:32
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Odpovídá na Martin Petrovaj
Erik Šťastný:24.1.2018 8:37

Jasně no, já jen že když přítelkyně měla kdysi v minulosti domácí úkol na otočení pole, tak zavolání metody .reverse() neprošlo :D

 
Nahoru Odpovědět
24.1.2018 8:37
Avatar
Mirek Slouka
Člen
Avatar
Odpovídá na Jan Tomek
Mirek Slouka:24.1.2018 8:57

Pokud chceš vybírat poslední souhlásku ve stringu cyklem, tak máš v podstatě 2 možnosti.

  1. procházet string po jednotlivých znacích od 0 po maximální délku a vzít poslední nalezenou souhlásku, ale u delších řetězců to může trvat dýl
  2. obrátit postup, začít procházet řetězec od konce a vybrat hned první, kterou najdeš
Editováno 24.1.2018 8:58
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
24.1.2018 8:57
I can explain it to you, but I can't understand it for you.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.