|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer|
_mbsdec, _strdec, _wcsdec
Move a string pointer back one character.
unsigned char *_mbsdec( const unsigned char *start, const unsigned char *current );
- Pointer to first byte of any multibyte character in the source string; start must precede current in the source string.
- Pointer to first byte of any multibyte character in the source string; current must follow start in the source string.
_mbsdec, _strdec and _wcsdec each return a pointer to the character that immediately precedes current; _mbsdec returns NULL if the value of start is greater than or equal to that of current. _tcsdec maps to one of these functions and its return value depends on the mapping.
The _mbsdec function returns a pointer to the first byte of the multibyte-character that immediately precedes current in the string that contains start. _mbsdec recognizes multibyte-character sequences according to the multibyte code page currently in use.
Security Note This API incurs a potential threat brought about by a buffer overrun problem. Buffer overrun problems are a frequent method of system attack, resulting in an unwarranted elevation of privilege. For more information, see Avoiding Buffer Overruns.
Generic-Text Routine Mappings
|TCHAR.H routine||_UNICODE & _MBCS not defined||_MBCS defined||_UNICODE defined|
_strdec and _wcsdec are single-byte character and wide-character versions of _mbsdec. _strdec and _wcsdec are provided only for this mapping and should not be used otherwise.
|Routine||Required header||Optional headers||Compatibility|
|_mbsdec||<mbstring.h>||<mbctype.h>||Win 98, Win Me, Win NT, Win 2000, Win XP|
|_strdec||<tchar.h>||Win 98, Win Me, Win NT, Win 2000, Win XP|
|_wcsdec||<tchar.h>||Win 98, Win Me, Win NT, Win 2000, Win XP|
For additional compatibility information, see Compatibility in the Introduction.
All versions of the C run-time libraries.
The following code snippet shows a use of _tcsdec.
const TCHAR *str = _T("some text"); const TCHAR *str2; TCHAR *answer; str2 = str; str2++; answer = _tcsdec( str, str2 );
The following code snippet shows a use of _mbsdec.
char *str = "some text"; char *str2; unsigned char *answer; str2 = str; str2++; answer = _mbsdec( reinterpret_cast<unsigned char *>( str ), reinterpret_cast<unsigned char *>( str2 ));