Win32 String Functions

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.