Wiem, że istnieją sposoby na porównywanie przypadków ignorowania, które wymagają przechodzenia przez ciągi znaków lub jeden kod good one na SO wymaga innej biblioteki. Muszę umieścić to na innych komputerach, które mogą go nie zainstalować. Czy istnieje sposób na wykorzystanie standardowych bibliotek, aby to zrobić? Teraz właśnie robię ...Nieczułe na ciągi literowe porównania C++
if (foo == "Bar" || foo == "bar")
{
cout << "foo is bar" << endl;
}
else if (foo == "Stack Overflow" || foo == "stack Overflow" || foo == "Stack overflow" || foo == "etc.")
{
cout << "I am too lazy to do the whole thing..." << endl;
}
To może znacznie poprawić czytelność i użyteczność mojego kodu. Dziękuję za przeczytanie tej książki.
Poważnie? Nawet jeśli nie ma wbudowanego sposobu, możesz * łatwo * napisać funkcję, aby to zrobić, zamiast brutalnie wymuszać każde indywidualne porównanie. Co jest nie tak z iterowaniem po strunach? To właśnie będzie robić każda biblioteka, z której będziesz korzystać. –
stricmp jest dostępny wszędzie. – arx
Jakie standardowe biblioteki są dostępne, zależy od wersji kompilatora C++, którego planujesz użyć do kompilacji pliku binarnego. Na przykład C++ 0x ma obsługę regex. Dla starszych kompilatorów możesz użyć stricmp. – Alan