_mbsdec, _strdec, _wcsdec
Move a string pointer back one character.
unsigned char *_mbsdec( const unsigned char *start, const unsigned char *current );
Parameters
- start
- Pointer to first byte of any multibyte character in the source string; start must precede current in the source string.
- current
- Pointer to first byte of any multibyte character in the source string; current must follow start in the source string.
Return Value
_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.
Remarks
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 |
|---|---|---|---|
| _tcsdec | _strdec | _mbsdec | _wcsdec |
_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.
For more information, see Using Generic-Text Mappings and Generic-Text Mappings.
Requirements
| 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.
Libraries
All versions of the C run-time libraries.
Example
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 ));
See Also
String Manipulation Routines | _mbsinc | _mbsnextc | _mbsninc | Run-Time Routines and .NET Framework Equivalents