C ++ strcoll () - C ++ standardraamatukogu

Funktsioon strcoll () C ++ -s võrdleb kahte nulliga lõppevat stringi. Võrdlus põhineb kategooria LC_COLLATE määratletud praegusel lokaadil.

strcmp () on enamiku stringide võrdluste jaoks piisav, kuid unicode'i tähemärkide käsitlemisel on mõnikord teatud nüansse, mis muudavad baitide-baitide stringide võrdluse valeks.

Näiteks kui võrdlete kahte hispaaniakeelset stringi, võivad need sisaldada rõhutatud märke nagu á, é, í, ó, ú, ü, ñ, ¿, ¡jne.

Vaikimisi järgnevad sellised rõhutatud tähemärgid kogu a, b, c … z tähestiku järel. Selline võrdlus oleks vigane, kuna a-ga erinevad aktsendid peaksid tegelikult tulema enne b-d.

strcoll () kasutab võrdluse tegemiseks praegust lokaati, andes sellistel juhtudel täpsema tulemuse.

See on määratletud päisefailis.

strcoll () prototüüp

 int strcoll (const char * lhs, const char * rhs);

Funktsioonil strcoll () on kaks argumenti: lhs ja rhs. See võrdleb lhs ja rhs sisu kategooria LC_COLLATE praeguse lokaadi põhjal.

strcoll () parameetrid

  • lhs ja rhs: null-lõpetatud stringide kursor võrdlemiseks.

strcoll () Tagastusväärtus

Funktsioon strcoll () tagastab a:

  • positiivne väärtus, kui esimene erinev märk lh-des on suurem kui vastav märk rh-des.
  • negatiivne väärtus, kui esimene erinev märk lh-des on väiksem kui vastav märk rh-des.
  • 0, kui lhs ja rhs on võrdsed.

Näide: Kuidas funktsioon strcoll () töötab?

 #include #include using namespace std; int main() ( char lhs() = "Armstrong"; char rhs() = "Army"; int result; result = strcoll(lhs,rhs); cout < 0) cout << rhs << " precedes " << lhs << endl; else if (result < 0) cout << lhs << " precedes " << rhs << endl; else cout << lhs << " and " << rhs << " are same" << endl; return 0; )

Programmi käivitamisel on väljund järgmine:

 Praeguses piirkonnas eelneb Armstrong armeele

Huvitavad Artiklid...