Přetypování proměnné znak ->číslo – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Přetypování proměnné znak ->číslo – C / C++ – Fórum – Programujte.comPřetypování proměnné znak ->číslo – C / C++ – Fórum – Programujte.com

 

Ryan99
~ Anonymní uživatel
15 příspěvků
28. 6. 2015   #1
-
0
-

Dobrý den,

vytvářím převodník arabských čísel na římská a v jednom kroku  (přičítání M pro tisíce, desetitisíce atd.) bych potřeboval přetypovat proměnnou ze znaků, řetězce na int, kvůli for cyklu. Celé to procházím cyklem, takže potřebuji převést cislo[x] na int a uložit do druhé proměnné, zkoušel jsem to různě, např. takto, ale bohužel, vypisuje to nesmyslné hodnoty...

cislo[15] = "15161212"

pomocna = atoi(cislo[x]);

Díky za rady

Nahlásit jako SPAM
IP: 88.100.30.–
Kit+15
Guru
28. 6. 2015   #2
-
0
-

#1 Ryan99
Funkce atoi() požaduje jako parametr string. Dáváš jí však znak. Musíš tedy vytvořit jednoznakový string, aby to přijala.

Jednodušší bude, když místo funkce atoi() použiješ vlastní výpočet: 

pomocna = cislo[x] - '0';
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Ryan99
~ Anonymní uživatel
15 příspěvků
28. 6. 2015   #3
-
0
-

Díky, opravdu funguje. V C datový typ string ale neexistuje, ne? Nebo se jako string počítá třeba char pomocna[10], tedy pole o 10 znacích = string?

pomocna = cislo[x];
atoi(pomocna);

Mohl byste mi prosím vysvětlit i Váš zápis? Od mého jednoho znaku odečítám jeden znak, který je 0, proč to? Jaktože se tak z jednoho znaku odečtením '0' stane číslo, které můžu zapsat do int?

PS: S Cčkem víceméně začínám, programuji v PHP a dělají mi problémy zejména tyto věci co se týče syntaxe, přetypování, trochu ještě i pointery. Doporučil byste mi nějakou vhodnou literaturu? Nerad bych s každou takovou blbostí jako dnes otravoval zde na fóru..

Nahlásit jako SPAM
IP: 88.100.30.–
Ryan99
~ Anonymní uživatel
15 příspěvků
28. 6. 2015   #4
-
0
-

A ještě poslední dotaz. Je nějak možné přetypovat "zbytek onoho řetězce"? Např. mám:

char cisla[30] = "1230954";

S prvními 3 znaky pracuji, ale od 4 bych ho chtěl vypsat a použít, do proměnné bych tedy chtěl dostat řetězec "0954" a ten uložit jako int. Tedy nějakou fci která mi rozdělí řetězec od cisla[3] do konce. A potom předpokládám použiji funkci atoi().

Nahlásit jako SPAM
IP: 88.100.30.–
PiranhaGreg0
Stálý člen
29. 6. 2015   #5
-
0
-
Nahlásit jako SPAM
IP: 109.81.210.–
Radek Chalupa
~ Redaktor
+1
Super člen
30. 6. 2015   #6
-
0
-

#4 Ryan99
Pokud chceš text od 4. znaku, stačí použít adesu, tj. cisla+3, což je tylu char*, tzn. že ten výraz můžeš použít jako parametr fce atoi.

Radek Chalupa
- individuální konzultace, školení programování (C/C++, WinAPI, COM, ActiveX, ATL, C#, NET Framework, MFC)
- vývoj software na zakázku
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 89.177.51.–
Lukáš
~ Anonymní uživatel
301 příspěvků
27. 10. 2015   #7
-
0
-

Zdravím měl bych podobný dotaz. Mám vytvořené dvourozměrné pole typu int a potřeboval bych přetypovat všechny nuly v poli na prázdný znak. Můžete mě navést jak na to? Díky

Nahlásit jako SPAM
IP: 188.120.217.–
BDS+3
Věrný člen
27. 10. 2015   #8
-
0
-

#7 Lukáš
Jak nuly na prázdný znak? Co tím myslíš?

Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
Lukáš
~ Anonymní uživatel
301 příspěvků
28. 10. 2015   #9
-
0
-

#8 BDS
V pořádku už jsem na to přišel. Potřeboval jsem prostě místo 0 napsat prázdný řetězec ( " " ) a neuvědomil jsem si že to jde udělat přes podmíku.

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

Moderátoři diskuze

 

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