NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
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í.

Diskuze – Lekce 11 - Textové řetězce v C# podruhé - Práce s jednotlivými znaky

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
flower-go
Člen
Avatar
flower-go:16.9.2013 21:30

Ať dělám, co dělám (a to včetně toho, že jsem si stáhla řešení), vypisuje to spoustu chyb ( nelze najít 's', nelze použít ++,etc...); Kde je chyba ?
(úpravu podle Jan.Nygdo jsem také zkoušela... :( čím to ?

 
Odpovědět
16.9.2013 21:30
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na flower-go
Jan Vargovský:16.9.2013 21:40

Nám pošli kód a my se nato podíváme :)

 
Odpovědět
16.9.2013 21:40
Avatar
Petr Čech
Tvůrce
Avatar
Petr Čech:5.10.2013 19:08

Nepísmenný znak = entita (?) o_O

Odpovědět
5.10.2013 19:08
the cake is a lie
Avatar
Neaktivní uživatel:9.11.2013 11:32

V Cézarově šifře je chyba - "cernediryjsou­tamkdebuhdelil­nulou"
by mělo být - "cernediryjsou­tamkdepudedelit­nulou"
Jen minimální připomínka, doufám že nejsem tady jediný perfekcionista :D

Odpovědět
9.11.2013 11:32
Neaktivní uživatelský účet
Avatar
Petr.M
Člen
Avatar
Petr.M:21.11.2013 8:40

Prosím o radu, jaký je rozdíl mezi

int a = 84;
char z = Convert.ToChar(a);

a

int a = 84;
char z = (char)a;

Při výstupu se to tváří stejně.

Editováno 21.11.2013 8:41
Odpovědět
21.11.2013 8:40
Sometimes you just do things. - Scott Jurek
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Petr.M
Jan Vargovský:21.11.2013 8:50

Je to vpodstatě to samé. Jednou to přetypuješ a jednou zkonvertuješ.

 
Odpovědět
21.11.2013 8:50
Avatar
coells
Tvůrce
Avatar
Odpovídá na Petr.M
coells:21.11.2013 9:55

Pokud máš následující kód:

int i = -1;
char c = (char)i;
char d = Convert.ToChar(i);

Pak v prvním případě dojde ke konverzi a přetypování, kdy se děje následující:

  1. int má velikost 4 byty
  2. char má velikost 2 byty
  3. vezme se hodnota int a horní 2 byty se useknou (konverze)
  4. dolní dva byty se uloží do charu (přetypování)

Ve druhém případě se vyvolá bezpečná konverze, která kontroluje obsah intu a přetečení. Poté se přejde na první případ:

public static class Convert
{
    public static char ToChar(int value)
    {
      if (value < 0 || value > (int) ushort.MaxValue)
        throw new OverflowException();
      else
        return (char) value;
    }
}

Takže obsah 'c' bude 65535 a na dalším řádku dojde k výjimce.

Editováno 21.11.2013 9:56
 
Odpovědět
21.11.2013 9:55
Avatar
Johny Lewis
Neregistrovaný
Avatar
Johny Lewis:4.1.2014 17:58

Je nějaký rozdíl mezi touto verzí

int i = (int)c;
i += posun;
char znak = (char)i;
zprava += znak;

a touto verzí (char znak jsem nahradil již definovaným c)

int i = (int)c;
i += posun;
c = (char)i;
zprava += c;
 
Odpovědět
4.1.2014 17:58
Avatar
Johny Lewis
Neregistrovaný
Avatar
Odpovídá na
Johny Lewis:4.1.2014 18:01

Tak se omlouvám, myslel jsem si, že je to to samé, ale až nyní jsem to vyzkoušel a zjistil jsem, že se pak program ani nespustí :)

 
Odpovědět
4.1.2014 18:01
Avatar
Dominik Čoupek:14.1.2014 16:46

Opět velice zajímavý článek. Díky :-)

 
Odpovědět
14.1.2014 16:46
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 10 zpráv z 115.