mboost-dp1

Sammenligning a strenge i C++


Gå til bund
Gravatar #1 - knowlife
15. jan. 2005 18:04
Jeg er nybegynder til C++ og er løbet ind i et lille problem, mit program går ned når jeg prøver at sammenligne to strenge. Jeg har ingen idé om hvad der kan være galt, er der nogle der kan se nogle problemer med denne kode?:

#include <iostream.h>


void ko(void)
{
cout << "Muuh!";
}


void gris(void)
{
cout << "Øf øf!";
}


void (*funcpoint)(void);


void main(void)
{

char inpud[5];

cout << "Function to run: ";
cin >> inpud;
cout << "inpud er ";
cout << inpud << endl;

if(inpud=="ko"){ // her opstår problemet
cout << "inpud var ko";
funcpoint = ko;
cout << "funcpoint er ko";}
else if(inpud=="gris")
funcpoint = gris;
else
cout << "Bad luck...\"ko\" eller \"gris\".";

funcpoint();

}


Det skulle da vel nok være muligt at skrive
if(inpud=="ko")


...Bemærk at jeg bruger ordet "inpud" i stedet for "input" da jeg på et tidspunkt arbejdede under teorien at problemet bestod i en navnkonflikt.
Gravatar #2 - knowlife
15. jan. 2005 22:54
Nevermind, fandt selv ud af det...
Gravatar #3 - Mort
16. jan. 2005 11:27
Og til dem som læser din post og ikke selv kan finde ud af det, så findes der en funktion til at sammenligne strenge med, som hedder strcmp().

Bruger man == operatoren til at sammenligne strenge med, sammenligner man de pointere som peger på strengene.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login