Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Isotkirjaimet ja talukko (C++)

petrinm [05.09.2005 20:00:33]

#

1.Miten saan muutettua pienet kirjaimet isoiksi kirjaimiksi?

2.Jos mulla on taulukko:

char Merkit[10] = {"a","b","c");

ja ohjelmalle syötetään kirjain "a", niin miten saan helposti tietoon kuinka monentena tämä syötetty kijain on taulukossa?

Toivottavasti selitin riittävän tarkasti.

rndprogy [05.09.2005 20:09:57]

#

1. Käyt merkkijonossa olevat kirjaimet loopilla läpi ja lisää kunkin merkin arvoa 32:lla

char b[7] = "isoksi";
for (a = 0; a < 6; a++)
b[a]+=32;

2. Eli käyt taas läpi for loopilla ja vertaat. Ja käytä break; ia jotta voit lopettaa luupin. Ja for luupin muuttujan arvossa on se luku monentenako se on taulukossa.

if (annettuarvo == 'a')...

Heikki [05.09.2005 20:15:05]

#

2. Ihan yksinkertaisesti:

for (int i=0; i<10; i++) {  // Tietysti 10 paikalla on taulukon koko
  if (Merkit[i]=='a')
   cout << "Merkki on taulukon " << i << ":s solu\n";
}

Ja huomaa sitten että char-muuttujaan laitetaan merkki tyyliin char c='a'; eikä char c="a";

Jos taas käytä char-osoittimia, vertailu tehdään strcmp():llä.

Edit. Tietysti joku ehti edelle kun vitkuttelin tuon viestin kanssa.

Zach [05.09.2005 21:39:26]

#

rndprogy kirjoitti:

1. Käyt merkkijonossa olevat kirjaimet loopilla läpi ja lisää kunkin merkin arvoa 32:lla

Jos jonossa on muitakin merkkejä kuin kirjaimia, tuo ei tuollaisenaan toimi hyvin(sekottaa muutkin merkit), vaan vaatii esim. ctype.h:sta löytyvän isalpha-funktion kirjaimia tarkistamaan. Helppo tapa on myös ctype:n toupper:

#include <ctype.h>
...
char b[7] = "isoksi";
for (a = 0; a < 6; a++)
  b[a] = toupper (b[a]);

Ja isojen kirjainten ascii-koodit on kyllä 32 pienemmät kuin pienten (A=65, a=97), plussan paikalle siis miinus ;)

rndprogy [06.09.2005 21:05:04]

#

Zach kirjoitti:

Ja isojen kirjainten ascii-koodit on kyllä 32 pienemmät kuin pienten (A=65, a=97), plussan paikalle siis miinus ;)

Aih :) Kyllähän tuon tiesin. Ajattelin vain "loogisesti" eli pieni kirjain, pienempi luku.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta