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++
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...
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))
jaa en ole vielä perehtynyt c++:n noin tarkasti, mutta kiitos vain sain toimimaan
Aihe on jo aika vanha, joten et voi enää vastata siihen.