Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno funkce pro smazání znaku v poli, a převod char do int bez použití funkce (C)

Ahoj, nemůžu přijít na to jak vymazat nějaký znak z pole char. Mám zadané číslo třeba 0000530020 a potřebuju aby ty nuly na začátku tam nebyly. Udělal jsem to tak, že podmínkou zkouším jestli je na začátku nula a když jo, tak všchny znaky posunu o jeden dopředu(nulu to přepíše), ale na poslední místo kde by nemělo být nic to uloží nevím co, a ve výsledku to tam potom vypisuje nějaké divné symboly..
Teda teď jsem zjistil, že někdy to vyplní i zadané číslo pokud není plné to pole.
Mám nastavené char str[20] a když zadám číslo které nemá 20 číslic tak to vyplní zbytek nějakýma symbolama(nemůžu použít dynamický rozměr)

A druhý problém, neporadil by mi někdo jak převést tento řetěc čísel(znaků) na jedno číslo. Bohužel mám zadáno načítat znaky po jednom, takže scanf a podobné nemůžu. A funkci jako atoi a podobné taky nemůžu použít. Prosím o radu děkuju.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
A druhý problém, neporadil by mi někdo jak převést tento řetěc čísel(znaků) na jedno číslo. Bohužel…
MM.. 25.09.2011 23:48
MM..
ja som pochopil preco tam nesmie mat atoi a to podla mna kvoli tomu aby pochopili ako vnutorne precu… nový
IgorK 26.09.2011 09:24
IgorK
Díky všem za rady, podařilo se mi včera oboje tak nějak vyřešit. Ty symbloy stačilo na začátku to po… poslední
.pata. 26.09.2011 19:32
.pata.

A druhý problém, neporadil by mi někdo jak převést tento řetěc čísel(znaků) na jedno číslo. Bohužel mám zadáno načítat znaky po jednom, takže scanf a podobné nemůžu. A funkci jako atoi a podobné taky nemůžu použít.

preco by si nemohol pouzit atoi? To normalne funguje na string typu char[], a funguje spravne.

ja som pochopil preco tam nesmie mat atoi a to podla mna kvoli tomu aby pochopili ako vnutorne precuje char. a ze to je v podstate integer ASCII, cize na cislach by to malo normalne fungovat. cize ak napiseme zapis:
char digit = '7'; // '7' vnutorne je ASCII integer 55
int num = digit - '0'; // '0' vnutorne je ASCII integer 48, cize: 55-48 = 7 a mame char digit prevedene na int num
samozrejme ze vysvetlenie patri pre dotazovatela, tebe to vysvetlovat nemusim. :)

Díky všem za rady, podařilo se mi včera oboje tak nějak vyřešit. Ty symbloy stačilo na začátku to pole definovat "" jako prázné a plus dokopírovat ten znak ukončovací a..
a převádění čísel už jsem pak taky vymyslel. děkuju moc za odpovědi

Zpět do poradny Odpovědět na původní otázku Nahoru