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
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í
+1 bodů
Ř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ý
Redaktor
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.