Freigeben über


_itoa_s, _i64toa_s, _ui64toa_s, _itow_s, _i64tow_s, _ui64tow_s

Konvertiert eine ganze Zahl in eine Zeichenfolge. Diese Versionen von _itoa, _i64toa, _ui64toa, _itow, _i64tow, _ui64tow enthalten Sicherheitserweiterungen wie unter Sicherheitsfunktionen in der CRT beschrieben.

errno_t _itoa_s(
   int value,
   char *buffer,
   size_t sizeInCharacters,
   int radix 
);
errno_t _i64toa_s(
   __int64 value,
   char *buffer,
   size_t sizeInCharacters,
   int radix 
);
errno_t _ui64toa_s(
   unsigned _int64 value,
   char *buffer,
   size_t sizeInCharacters,
   int radix 
);
errno_t _itow_s(
   int value,
   wchar_t *buffer,
   size_t sizeInCharacters,
   int radix 
);
errno_t _i64tow_s(
   __int64 value,
   wchar_t *buffer,
   size_t sizeInCharacters,
   int radix 
);
errno_t _ui64tow_s(
   unsigned __int64 value,
   wchar_t *buffer,
   size_t sizeInCharacters,
   int radix 
);
template <size_t size>
errno_t _itoa_s(
   int value,
   char (&buffer)[size],
   int radix 
); // C++ only
template <size_t size>
errno_t _itow_s(
   int value,
   wchar_t (&buffer)[size],
   int radix 
); // C++ only

Parameter

  • [in] value
    Zu konvertierende Zahl.

  • [out] buffer
    Ausgefüllt mit dem Ergebnis der Konvertierung.

  • [in] sizeInCharacters
    Größe des Puffers in nebeneinander oder den Breitzeichen.

  • [in] radix
    Basis von value; muss im Bereich von 2–36 sein.

Rückgabewert

Null, wenn erfolgreich, ein Fehlercode, wenn ein Fehler auftritt. Wenn eine der folgenden Bedingungen gilt, die Funktionsaufrufe ein ungültiger Parameterhandler zu, wie in Parametervalidierung beschrieben.

Fehlerbedingungen

Wert

buffer

sizeInCharacters

Basisklasse

Return

any

NULL

any

any

EINVAL

any

any

<=0

any

EINVAL

any

any

<= Länge der Ergebniszeichenfolge

any

EINVAL

any

any

any

radix < 2 oder 36 radix >

EINVAL

Sicherheitsprobleme

Diese Features können eine Zugriffsverletzung generiert, wenn buffer nicht auf gültigen Arbeitsspeicher wird und nicht NULL ist oder ob die Länge des Puffers nicht lang genug, die Ergebniszeichenfolge enthalten ist.

Hinweise

Neben den Parametern und dem Rückgabewert verfügen die _itoa_s-Funktionen das gleiche Verhalten wie das häufig von weniger sichere Versionen.

In C++ wird die Verwendung dieser Funktionen durch Vorlagenüberladungen vereinfacht; die Überladungen können automatisch Rückschlüsse auf die Pufferlänge ziehen (wodurch kein Größenargument mehr angegeben werden muss), und sie können automatisch die älteren, nicht sicheren Funktionen durch ihre neueren, sicheren Entsprechungen ersetzen. Weitere Informationen finden Sie unter Sichere Vorlagenüberladungen.

Die Debugversionen dieser Funktionen füllen zunächst den Puffer mit "0xFD" auf. Mit _CrtSetDebugFillThreshold deaktivieren Sie dieses Verhalten.

Zuordnung generischer Textroutinen

Tchar.h-Routine

_UNICODE und _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_itot_s

_itoa_s

_itoa_s

_itow_s

_i64tot_s

_i64toa_s

_i64toa_s

_i64tow_s

_ui64tot_s

_ui64toa_s

_ui64toa_s

_ui64tow_s

Anforderungen

Routine

Erforderlicher Header

_itoa_s

<stdlib.h>

_i64toa_s

<stdlib.h>

_ui64toa_s

<stdlib.h>

_itow_s

<stdlib.h> oder <wchar.h>

_i64tow_s

<stdlib.h> oder <wchar.h>

_ui64tow_s

<stdlib.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

// crt_itoa_s.c
#include <stdlib.h>
#include <string.h>

int main( void )
{
    char buffer[65];
    int r;
    for( r=10; r>=2; --r )
    {
       _itoa_s( -1, buffer, 65, r );
       printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
    }
    printf( "\n" );
    for( r=10; r>=2; --r )
    {
       _i64toa_s( -1L, buffer, 65, r );
       printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
    }
    printf( "\n" );
    for( r=10; r>=2; --r )
    {
       _ui64toa_s( 0xffffffffffffffffL, buffer, 65, r );
       printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
    }
}

Ausgabe

base 10: -1 (2 chars)
base 9: 12068657453 (11 chars)
base 8: 37777777777 (11 chars)
base 7: 211301422353 (12 chars)
base 6: 1550104015503 (13 chars)
base 5: 32244002423140 (14 chars)
base 4: 3333333333333333 (16 chars)
base 3: 102002022201221111210 (21 chars)
base 2: 11111111111111111111111111111111 (32 chars)

base 10: -1 (2 chars)
base 9: 145808576354216723756 (21 chars)
base 8: 1777777777777777777777 (22 chars)
base 7: 45012021522523134134601 (23 chars)
base 6: 3520522010102100444244423 (25 chars)
base 5: 2214220303114400424121122430 (28 chars)
base 4: 33333333333333333333333333333333 (32 chars)
base 3: 11112220022122120101211020120210210211220 (41 chars)
base 2: 1111111111111111111111111111111111111111111111111111111111111111 (64 chars)

base 10: 18446744073709551615 (20 chars)
base 9: 145808576354216723756 (21 chars)
base 8: 1777777777777777777777 (22 chars)
base 7: 45012021522523134134601 (23 chars)
base 6: 3520522010102100444244423 (25 chars)
base 5: 2214220303114400424121122430 (28 chars)
base 4: 33333333333333333333333333333333 (32 chars)
base 3: 11112220022122120101211020120210210211220 (41 chars)
base 2: 1111111111111111111111111111111111111111111111111111111111111111 (64 chars)

.NET Framework-Entsprechung

System::Convert::ToString

Siehe auch

Referenz

Datenkonvertierung

_ltoa, _ltow

_ultoa, _ultow