|
|
c++ opakovani
|
24.11.2011 11:42
mojma
|
Zdravim
5 let jsem v cecku neprogramoval a potreboval bych nutne poradit v cem je chyba.
char s[] = "123";
potrebuju ukladat jednotliva cisla jako int do pole A typu int. Vysledek by mel byt asi takovy:
A[0]=1
A[1]=2
A[3]=3
napadlo me(pro jednoduchost to rovnou tisknu):
printf("na pozici 0 je znak s hodnotou %i\n", atoi(&s[0]));
ale to nefunguje na pozici 0 mam 123 a ma tam byt 1
prosim o radu
|
|
|
Re: c++ opakovani
|
24.11.2011 14:34
Hynek (Pichi) Vychodil
|
s[0] je první znak řeťezce, &s[0] je ukazatel na první znak řeťezce = ukazatel na řetězec začínající na prvním znaku řeťezce s ergo řetězec s, atoi(&s[0]) = atoi(s) ergo vyrobí číslo z řetězce "123" ergo číslo 123. Myslím, že nejjednodušší řešení by bylo asi for(i=0;s[i];i++) A[i] = s[i] - '0'; |
|
|
Re: c++ opakovani
|
24.11.2011 18:53
mojma
|
dekuji za peknou a pohotovou odpoved. Funguje skvele jen me nejak nedochazi proc -'0'. Muzete mi to prosim vysvetlit? ona je tam nula navic jako u retezce? i kdyz je to jen jeden char? |
|
|
Re: c++ opakovani
|
24.11.2011 20:11
MrEvil
|
Protoze by se jinak do intu ulozila ASCII hodnota znaku. Abys dostal primo to cislo tak musis odecist ASCII hodnotu znaku 0.
|
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|