Video: Character arrays and pointers - part 1 2024
De standaard char-variabele in C ++ is maar een fractie van 1 byte breed en kan slechts 255 verschillende karakters aan. Dit is genoeg voor Europese talen, maar niet groot genoeg om op symbolen gebaseerde talen zoals kanji te behandelen.
Er zijn verschillende normen ontstaan om de tekenset uit te breiden met de eisen van deze talen. UTF-8 gebruikt een combinatie van 8-, 16- en 32-bits tekens om bijna elke kanji of hiëroglief te implementeren die u maar kunt bedenken, maar toch compatibel blijven met eenvoudige 8-bits ASCII. UTF-16 gebruikt een combinatie van 16- en 32-bits tekens om een uitgebreide tekenset te verkrijgen en UTF-32 gebruikt 32 bits voor alle tekens.
UTF staat voor Unicode Transformation Format, van waaruit het de gemeenschappelijke bijnaam Unicode krijgt.
De tabel beschrijft de verschillende karaktertypes die door C ++ worden ondersteund. In eerste instantie probeerde C ++ voorbij te komen met een vaag gedefinieerd breed karaktertype, wchar_t. Dit type was bedoeld als het brede tekentype dat eigen is aan de omgeving van het toepassingsprogramma. C ++ '11 introduceerde specifieke types voor UTF-16 en UTF-32.
Variabele | Voorbeeld | Wat het is | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
tekens | 'c' | ASCII- of UTF-8-tekens | wchar_t | L'c ' | Teken in groot formaat | char_16t | u'c' | UTF-16-teken | char_32t | U'c ' | UTF-32-teken |
UTF-16 is de standaardcodering voor Windows-toepassingen. Het type wchar_t verwijst naar UTF-16 in de code:: Blocks / gcc-compiler.
Elk van de karaktertypen in de tabel kan ook worden gecombineerd in strings:
wchar_t * wideString = L "dit is een brede reeks";