Char:sta Integeriksi

Eli ongelmana on..

Kuinka muuttaa Char integeriksi ja päinvastoin.
Eli kuvitellaan että annetaan int luku = 12 ja se pitäisi saada char luku = "12"

Onko tälläinen toimenpide ylipäätään mahdollinen, jos on kuinka se tapahtuu, jos ei niin olisiko jotain vastaavia keinoja miten voisi vaihtaa char:n ja int:n paikkaa.

Toivottavasti ymmärsitte, mie en oikeen osaa sitä silleen oikeaoppisesti selittää.. :)

Koittakaa selittää sitten silleen, että tällänen aloittelijakin ymmärtää.. :)

Mutta kiitos kuitenkin kaikille vastanneille.. :)
4708
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Muuttuja castataan toisentyyppiseksi:

char cLuku;
int iLuku;

iLuku = (int)cLuku;

(ja vastaavasti cLuku = (char)iLuku; )

Otettava kuitenkin huomioon castaamalla int char:ksi että char on 8-bittinen luku, eli välillä -127, 127. Jos int-tyyppinen muuttuja on jotain muuta kuin tuolla välillä, tapahtuu ikäviä asioita. Toisinpäin ei vastaavaa ongelmaa tapahdu.

Äänestä
  • unsigned charilla saa lukualueeksi 0-255. Yleensä kannattaa laittaa kääntäessä kääntäjään päälle lisävaroitukset (esim. gcc:n optio -Wall), jotta huomaa mahdolliset castaus-ongelmat.

    Äänestä

#include

int atoi(char s[]) {
int i, n, sign;
for (i = 0; isspace(s[i]); i )
;
sign = (s[i] == '-') ? -1 : 1;
if (s[i] == ' ' || s[i] == '-')
i ;
for (n = 0; isdigit(s[i]); i )
n = 10 * n (s[i] - '0');
return sign * n;
}

Äänestä
  • Miksi tehdä oma atoi, kun se löytyy muutenkin.

    Linuxin man atoi:

    #include

    int atoi(const char *nptr);
    long atol(const char *nptr);
    long long atoll(const char *nptr);
    long long atoq(const char *nptr);

    Jos int pitää laittaa char *:een, niin sitten voi kokeilla vaikka sprintf/snprintf:ää tai vastaavia.

    Äänestä

Kommentoi aloitusta


child_ kirjoitti:

Eli ongelmana on..

Kuinka muuttaa Char integeriksi ja päinvastoin.
Eli kuvitellaan että annetaan int luku = 12 ja se pitäisi saada char luku = "12"

Onko tälläinen toimenpide ylipäätään mahdollinen, jos on kuinka se tapahtuu, jos ei niin olisiko jotain vastaavia keinoja miten voisi vaihtaa char:n ja int:n paikkaa.

Toivottavasti ymmärsitte, mie en oikeen osaa sitä silleen oikeaoppisesti selittää.. :)

Koittakaa selittää sitten silleen, että tällänen aloittelijakin ymmärtää.. :)

Mutta kiitos kuitenkin kaikille vastanneille.. :)

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu