[c++] söka på sträng och bokstav

Permalänk
Medlem

[c++] söka på sträng och bokstav

Hej!

Jag har en funktion som söker på en viss sträng och en annan funktion som söker på en bokstav.

Problemet är när jag tex skickar strängen ägg till funktionen så retureras inget men om jag skickar gg så retureras ägg så av nån anledning fattar den inte vad å,ä,ö är vid inmatning, samma gäller för den andra funktionen, när jag skriver in ö så visas inget som börjar på ö.

Har försökt med både
setlocale(LC_ALL, "swedish");
och
SetConsoleOutputCP(1252);
(ändrat consolen till "Lucida Console".

tack på förhand!

Permalänk
Hedersmedlem

Vilken funktion använder du? string.find() verkar fungera:

string u = "eggäggÄggögg"; int i = u.find("gg");//1 i = u.find("ägg");//3 i = u.find("Ägg");//6 i = u.find("ögg");//9

Permalänk
Medlem

void LMReg::search(string str)const { size_t found; for(int i=0;i<this->nrOfLM;i++) { found=this->lm[i]->getName().find(str); if(found!=string::npos) { this->lm[i]->show(i); } } } void LMReg::showAllLetter(string str)const { for(int i=0;i<this->nrOfLM;i++) { if(((char)toupper(str.at(0)))==this->lm[i]->getName().at(0)) { this->lm[i]->show(i); } } }

Permalänk
Hedersmedlem

Jag vill minnas att toupper och liknande endast fungerar för engelska bokstäver; man får göra en egen variant som hanterar specialfallen.

Permalänk
Medlem

hm.. ok, men hur förklarar du den första funktionen search?