IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
exicap
Člen
Avatar
exicap:17.1.2015 11:14

Ahoj, rád bych určil pozici každého znaku v uživatelem zadané větě. Nicméně nechce mi to jet.

string zprava = Console.ReadLine();
string abecedniznaky = "abcdefghijklmnopqrstuvwxyz";

foreach (char c in zprava)
    int pozice = Array.IndexOf(abecedniznaky, c);

Vypisuje mi to error, že příkazem Array nelze volat na string. Přitom string je vlastně také pole, není?

Proč se tedy string chová jako pole a zde bych musel přímo definovat proměnnou abecedniznaky jako pole a tím pádem složitě do ní nahrávat všechna písmena abecedy?

Děkuji.

Editováno 17.1.2015 11:17
 
Odpovědět
17.1.2015 11:14
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na exicap
Ondřej Štorc:17.1.2015 11:38

Zkus použít místo:

string zprava = Console.ReadLine();
string abecedniznaky = "abcdefghijklmnopqrstuvwxyz";

foreach (char c in zprava)
    int pozice = Array.IndexOf(abecedniznaky, c);

toto:

string zprava = Console.ReadLine();
string abecedniznaky = "abcdefghijklmnopqrstuvwxyz";

foreach (char c in zprava)
    int pozice = abecedniznaky.IndexOf(c);
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
17.1.2015 11:38
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na exicap
Jan Vargovský:17.1.2015 13:42

String je sice interně pole, ale externě je to normální datový typ. Abys nedostával vyjímku, tak musíš zavolat na tom stringu metodu ToCharArray.

 
Nahoru Odpovědět
17.1.2015 13:42
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 3 zpráv z 3.