Kysyn käyttäjältä merkin ja numeron 2-alkioiseen char-taulukkoon. Annettu merkki pitää kuitenkin vaihtaa numeroksi.
switch (alkupiste[0])
{
case 'a': alkupiste[0]=1;
break;
case 'b': alkupiste[0]=2;
break;
case 'c': alkupiste[0]=3;
break;
case 'd': alkupiste[0]=4;
break;
}
Näin yritän, mutta tällä tavoin antamani luvut heittävät ekaan alkioon ihmeellisen merkin, esim.. pata ja hertta. Millä tavoin saisin ensimmäiseen alkioon muutettua nimenomaan 1:n 2:n 3:n jne...??
switch (alkupiste[0])
{
case 'a': alkupiste[0]=1;
break;
case 'b': alkupiste[0]=2;
break;
case 'c': alkupiste[0]=3;
break;
case 'd': alkupiste[0]=4;
break;
}
Näin yritän, mutta tällä tavoin antamani luvut heittävät ekaan alkioon ihmeellisen merkin, esim.. pata ja hertta. Millä tavoin saisin ensimmäiseen alkioon muutettua nimenomaan 1:n 2:n 3:n jne...??
Vastaukset 7
Vanhimmat
et voi tehdä noin. voit kyllä laittaa merkin esim '1' (char) numeerisen ykkösen (int) sijaan.
tietysti aina helpottaisi kuulla mihin moista tarvitset, niin voisi antaa ehdottaa parempaa ratkaisutapaa.
vaikka en ymmärräkään, niin voit tehdä tyyppimuunnoksen esim std::cout
Miksi noin ei voisi tehdä? Tuossa tapauksessa pitää vaan tietää numeroita vastaavat ascii-arvot. Helpommalla pääsee kun sijoitat
case 'a':
alkupiste[0] = '1';
break;
jne.
Kiitos... tällähän se ratkesi...
"Miksi noin ei voisi tehdä?"
Koska siinä ei ole mitään logiikkaa. Sama kuin kokonaislukutaulukkoon syötettäisiin merkkijono.
"voit kyllä laittaa merkin esim '1' (char) numeerisen ykkösen (int) sijaan. "
"Helpommalla pääsee kun sijoitat
case 'a':
alkupiste[0] = '1';
break; "
alkupiste[0] =('1'-'a');
Koodissa on virhe, joka myöhemmillä ohjeilla korjaantuikin, mutta en kyllä ymmärrä mikä tässä nyt järjetöntä on? Ehkäpä kyseessä on harjoitustyö, jossa opetetaan char- ja int-tyyppien "eroja"?