lite åäö problem med stricmp (c++)

Permalänk
Medlem

lite åäö problem med stricmp (c++)

jag skriver ett text baserat spel och jag vill att man ska kunna använda åäö i spelet.

Man ska alltiså kunna skriva: "titta på dörren" t.ex och en funktion ska kallas.

Jag kan få detta att funka med "titta pa dorren"

men den vill inte använda åäö i string gemförelser.

Kan man komma runt detta?

cin.getline(svar,20);

if(stricmp(svar,"åäö")==0)
{
cout<<"Det funkar " <<endl;
}

else
{
cout<<"det funka inte " <<endl;
}

är svar==åäö så funkar detta alltså inte...

Någon som vet?

Permalänk
Inaktiv

Istället för

if(stricmp(svar,"åäö")==0)

prova med

if(stricmp(svar,"\206\204\224")==0)

Permalänk
Medlem

Redan försökt med det, funkade inte...

Permalänk
Medlem

Du kan ju alltid gå igenom kommandot användaren skrev och byta ut å mot a, ä mot a och ö mot o innan du skickar kommandot vidare.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av cd-rw
Du kan ju alltid gå igenom kommandot användaren skrev och byta ut å mot a, ä mot a och ö mot o innan du skickar kommandot vidare.

då blir ko och kö samma sak, vilket det inte är.

Permalänk
Medlem

Det är strcmp() inte stricmp(). Jag gjorde ett litet experiment som visar att om man skriver in tecknen själv till en variabel så är ASCII koderna:
å = -122
ä = -124
ö = -108
Men om man skriver tecknen rakt i koden så är tecknen som motsvarars ASCII koder:
motsvarande å=-27
-||- ä=-28
-||-ö=-10

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Vijjje
då blir ko och kö samma sak, vilket det inte är.

Jag tror knappast det kommer en situation där man antingen kan skriva "ta äpplet" och "ta åpplet" och helt olika saker ska ske. Dessutom så skriver han ju att han byggt upp sitt program genom att använda ä>a å>a ö>o och då får man väl anta att det fungerar bra.