Slova pozpátku – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Slova pozpátku – .NET – Fórum – Programujte.comSlova pozpátku – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
ondrej770
Duch
18. 8. 2017   #1
-
0
-

Ahoj, potřebuju poradit s jedním banálním problémem, který se mi nepodařilo zatím rozluštit nevíte někdo náhodou, jak: 
 program, který z konzole načte slovo a vypíše jej pozpátku. A taky: 
 Napište program, který z konzole načte větu a vypíše jí pozpátku, přičemž slova zachová.
Např. větu "Zase jsme vyhráli, tentokrát těsně." vypíše jako ".těsně tentokrát, vyhráli jsme Zase".

Díky moc :)

Nahlásit jako SPAM
IP: 90.180.200.–
SeraphCZ0
Stálý člen
18. 8. 2017   #2
-
+1
-
Zajímavé

#1 ondrej77
V případě slova bych ho projíždel cyklem po jednom odzadu a ukládal do pomocné proměnné. A v případě věty bych si ji rozdělil po slovech do pole a pak v podstatě postupoval stejně jako s písmeny v předchozím úkolu ale tentokrát s celými slovy.

Nahlásit jako SPAM
IP: 37.221.249.–
18. 8. 2017   #3
-
+1
-
Zajímavé

Slovo: načteš string, pomocí vlastnosti Lenght určíš index posledního znaku a odzadu pomocí vlastnosti Chars[index] budeš odzadu získávat jednotlivé znaky a zapisovat je do nového řetězce.

Věta: Pomocí metody Split(char[]) rozdělíš větu na pole stringů, kde každý string reprezentuje slovo. Oddělovačem je mezera (parametr bude pole s jedním prvkem). Pole pak projdeš odzadu a budeš slova zapisovat do nového řetězce.

https://msdn.microsoft.com/cs-cz/library/system.string(v=vs.110).aspx

hu

Nahlásit jako SPAM
IP: 195.178.67.–
ondrej770
Duch
18. 8. 2017   #4
-
0
-

#3 hlucheucho
string slovo = "Ahoj kámo";
            string [] tx = slovo.Split(new char[] {' '});
            Console.WriteLine("{1} {0}",tx);

výsledek (kámo ahoj)  to vyhodí, ale nejsem si jistý jestli bych tímto způsobem uspěl a asi jsi to takhle nemyslel

Nahlásit jako SPAM
IP: 90.180.200.–
18. 8. 2017   #5
-
+1
-
Zajímavé

#4 ondrej77
myslel jsem sestavit řetězec a ten pak vypsat. Takže tebou získané pole tx projít odzadu cyklem a ze slov skládat výsledný string. Věta může mít různý počet slov, což nevím, jak u Console.WriteLine vyřešit.

Akorát by asi bylo třeba v první řadě ze zdrojového stringu odebrat tečku = poslední znak a do cílového stringu tečku zapsat na začátek.

Nahlásit jako SPAM
IP: 195.178.67.–
gna
~ Anonymní uživatel
1891 příspěvků
18. 8. 2017   #6
-
+1
-
Zajímavé

Kdbyby šlo jen o to nějak to vyplodit, tak je to na jeden řádek.

string veta = "Zase jsme vyhráli, tentokrát těsně.";
string pozpatku = string.Join("", Regex.Matches(veta, @"\w+|\W+").Cast<Match>().Reverse());

Ale o to pravděpodobně v návaznosti na předchozí úkol nejde. Asi to máš po znacích projít a rozlišit slova a interpunkci.

string token;
List<string> casti = new List<string>();
for (int i = 0; i < veta.Length; )
{
	for (token = ""; i < veta.Length && Char.IsLetter(veta[i]); i++)
		token += veta[i];
	if (token != "")
		casti.Add(token);
	for (token = ""; i < veta.Length && !Char.IsLetter(veta[i]); i++)
		token += veta[i];
	if (token != "")
		casti.Add(token);
}
casti.Reverse();
string pozpatku = string.Join("", casti);

Předpokládám, že to uděláš inteligentněji.

Nahlásit jako SPAM
IP: 213.211.51.–
peter
~ Anonymní uživatel
4016 příspěvků
18. 8. 2017   #7
-
+1
-
Zajímavé

Ja bych cetl string od zadu. Zapis jsem pouzil javascriptovy, ale to si snad poradis.
out = '';
slovo = '';
cyklus (znaky stringu od konce)
if (isLetter(znak)) {slovo = znak+ slovo;}
else {out += slovo+char; znak='';}

Nahlásit jako SPAM
IP: 2001:718:2601:258:55aa:33...–
gna
~ Anonymní uživatel
1891 příspěvků
18. 8. 2017   #8
-
+1
-
Zajímavé

Jop, to čtení odzadu by asi bylo lepší.

Nahlásit jako SPAM
IP: 213.211.51.–
ondrej770
Duch
19. 8. 2017   #9
-
0
-

Super, děkuji všem:)

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

Podobná vlákna

String pozpátku — založil 3lwis

Výpis pozpátku — založil pes41

Výpis jména pozpátku — založil LUK4S3K

 

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