Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: char-ongelma

samlui [25.01.2005 11:22:34]

#

mikä vikana kun kääntäjä valittaa tästä

char sana[100];
int pituus = 0;
while(sana[pituus] != "") pituus++;

niin ja kääntäjä on mingw ja kieli c++

dungeon86 [25.01.2005 12:17:33]

#

Minä pistäisin noiden lainausmerkkien väliin \0-merkin siis:

while (sana[pituus] != '\0')
 pituus++;

Huomaa '-merkit "-merkkien sijaan...

Elikkä C:llä tehtynä (en käytä C++-tietystä syystä):

#include <stdio.h>

int main(void)
{
 char sana[100];
 int pituus = 0;
 printf("Anna sana: ");
 gets(sana);
 while (sana[pituus] != '\0')
  pituus++;
 printf("Sanan pituus oli %d merkkiä!", pituus);
 return 0;
}

Ja ymmärtää myös välilyönnit! Huom! Kääntäjänä on DJGPP...

Metabolix [25.01.2005 21:25:22]

#

sana[pituus] on tyyppiä char, kun taas lainausmerkkien välissä oleva teksti edustaa tyyppiä char * eli char-osoitin (tai -taulukko), joten vertailu ei onnistu. Merkkijono päättyy merkkiin ASCII-0, jonka voi merkitä esim. ylläolevalla tavalla tai ihan kokonaislukuna nolla. (while (sana[pituus] != 0))

samlui [26.01.2005 11:03:14]

#

jaa en ole vielä perehtynyt c++:n noin tarkasti, mutta kiitos vain sain toimimaan

Vastaus

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

Tietoa sivustosta