Many Win32 string functions duplicate or enhance familiar string-manipulation functions from the standard C run-time (CRT) library. Many of the enhancements enable Win32 functions to work with Unicode or extended character sets. For example, the functions in the following table are identical to standard C functions except that the Win32 functions are enhanced for use with Unicode.
Win32 Function | Standard CRT function |
---|---|
lstrcat | strcat |
lstrcmp | strcmp |
lstrcmpi | strcmpi |
lstrcpy | strcpy |
lstrlen | strlen |
The strlen function, for example, always returns the number of bytes in a string, but the lstrlen function returns the number of characters, regardless of whether the characters are 1 or 2 bytes wide.
The following Win32 functions differ from standard C functions such as tolower and toupper in that they operate on any character in a character set. By using the CharLower function, for example, a Win32-based application can convert an uppercase U with an umlaut (Ü) to lowercase (ü). For more information about character sets, see Single-byte Character Sets.
Function | Description |
---|---|
CharLower | Converts a character or string to lowercase. |
CharLowerBuff | Converts a character string to lowercase. |
CharNext | Moves to the next character in a string. |
CharPrev | Moves to the preceding character in a string. |
CharUpper | Converts a character or string to uppercase. |
CharUpperBuff | Converts a string to uppercase. |
The following Win32 functions make determinations about a character based on the semantics of the language selected by the user. These functions are Unicode enabled.
Function | Description |
---|---|
IsCharAlpha | Determines whether a character is alphabetic. |
IsCharAlphaNumeric | Determines whether a character is alphanumeric. |
IsCharLower | Determines whether a character is lowercase. |
IsCharUpper | Determines whether a character is uppercase. |
The wsprintf and wvsprintf functions are extensions to the standard C functions sprintf and vsprintf. The Win32 versions support format specifications unique to Unicode.