_strdec, _wcsdec, _mbsdec, _mbsdec_l

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Hace retroceder el puntero de cadena un carácter.

System_CAPS_ICON_important.jpg Importante

mbsdec y mbsdec_l no se pueden usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para más información, vea Funciones de CRT no admitidas con /ZW.

unsigned char *_strdec(  
   const unsigned char *start,  
   const unsigned char *current   
);  
unsigned wchar_t *_wcsdec(  
   const unsigned wchar_t *start,  
   const unsigned wchar_t *current   
);  
unsigned char *_mbsdec(  
   const unsigned char *start,  
   const unsigned char *current   
);  
unsigned char *_mbsdec_l(  
   const unsigned char *start,  
   const unsigned char *current,  
   _locale_t locale  
);  

Parámetros

start
Puntero a cualquier carácter (en el caso de _mbsdec y _mbsdec_l, al primer byte de cualquier carácter multibyte) de la cadena de origen; start debe preceder a current en la cadena de origen.

current
Puntero a cualquier carácter (en el caso de _mbsdec y _mbsdec_l, al primer byte de cualquier carácter multibyte) de la cadena de origen; current debe seguir a start en la cadena de origen.

locale
Configuración regional que se va a usar.

_mbsdec, _mbsdec_l, _strdec y _wcsdec devuelven un puntero al carácter que precede inmediatamente a current; _mbsdec devuelve NULL si el valor de start es mayor o igual que el de current. los mapas de_tcsdec se asigna a una de estas funciones y el valor que devuelve depende de la asignación.

Las funciones _mbsdec y _mbsdec_l devuelven un puntero al primer byte del carácter multibyte que precede inmediatamente a current en la cadena que contiene start.

El valor de salida se ve afectado por el valor de la LC_CTYPE configuración de categoría de la configuración regional; vea setlocale, _wsetlocale para obtener más información. _mbsdecreconoce secuencias de caracteres multibyte según la configuración regional que está actualmente en uso, mientras que _mbsdec_l es idéntico, salvo que usa el parámetro de configuración regional que se pasa en su lugar. Para obtener más información, vea Locale.

Si start o current es NULL, se invoca el controlador de parámetros no válidos, como se describe en validación del parámetro. Si la ejecución puede continuar, la función devuelve EINVAL y establece errno en EINVAL.

System_CAPS_ICON_important.jpg Importante

Estas funciones pueden ser vulnerables a amenazas de saturación del búfer. Las saturaciones del búfer se pueden usar para ataques del sistema, ya que pueden producir una elevación de privilegios no justificada. Para obtener más información, vea Avoiding Buffer Overruns(Evitar saturaciones del búfer).

Asignaciones de rutina de texto genérico

Rutina Tchar.h_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tcsdec_strdec_mbsdec_wcsdec

_strdec y _wcsdec son versiones de caracteres de un solo byte y caracteres anchos de _mbsdec y _mbsdec_l. _strdec y _wcsdec se proporcionan solo para esta asignación y no deben usarse de otra manera.

Para obtener más información, consulte usar asignaciones de texto genérico y asignaciones de texto genérico.

RutinaEncabezado necesarioEncabezado opcional
_mbsdec<mbstring.h><mbctype.h>
_mbsdec_l<mbstring.h><mbctype.h>
_strdec<tchar.h>
_wcsdec<tchar.h>

Para obtener más información sobre compatibilidad, vea Compatibility.

En el siguiente ejemplo, se muestra el uso de _tcsdec.

  
      #include <iostream>  
#include <tchar.h>  
using namespace std;  
  
int main()  
{  
   const TCHAR *str = _T("12345");  
   cout << "str: " << str << endl;  
  
   const TCHAR *str2;  
   str2 = str + 2;  
   cout << "str2: " << str2 << endl;  
  
   TCHAR *answer;  
   answer = _tcsdec( str, str2 );  
   cout << "answer: " << answer << endl;  
  
   return (0);   
}  
  

En el siguiente ejemplo, se muestra el uso de _mbsdec.

#include <iostream>  
#include <mbstring.h>  
using namespace std;  
  
int main()   
{   
   char *str = "12345";  
   cout << "str: " << str << endl;  
  
   char *str2;  
   str2 = str + 2;   
   cout << "str2: " << str2 << endl;  
  
   unsigned char *answer;  
   answer = _mbsdec( reinterpret_cast<unsigned char *>( str ), reinterpret_cast<unsigned char *>( str2 ));  
  
   cout << "answer: " << answer << endl;  
  
   return (0);   
}  
  

No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Manipulación de cadenas
_strinc, _wcsinc, _mbsinc, _mbsinc_l
_strnextc, _wcsnextc, _mbsnextc, _mbsnextc_l
_strninc, _wcsninc, _mbsninc, _mbsninc_l

Mostrar: