ltos
- long to string
Diese
Funktion konvertiert den als lValue übergebenen Wert vom
Typ long in einen ASCIIZ-String und speichert das
Ergebnis in der als lpszBuffer übergebenen Variablen.
Dabei wird der String mit dem als chThousand übergebenem
Symbol für die Zifferngruppierung formatiert.
Parameter:
lValue = Die umzuwandelnde Zahl.
lpszBuffer = Zeigt auf den Zielpuffer.
chThousand = Symbol für die Zifferngruppierung.
Funktionsergebnis:
lpszBuffer = Zeigt auf den Zielpuffer.
LPSTR ltos(long lValue, LPSTR lpszBuffer, char chThousand)
{
int iSource, iDest, nCounter;
char szNumber[33];
memset(&szNumber, '\0', sizeof(szNumber));
/* Zahl in eine
ASCIIZ-Zeichenkette wandeln */
_ltoa(lValue, szNumber, 10);
/* Nullbasierter
Index auf letzte Ziffer */
iSource = strlen(szNumber) - 1;
/* Neuer
nullbasierter Index inkl. der Trennzeichen */
iDest = iSource + iSource / 3;
/* Schleifenzähler
*/
nCounter = 0;
/* Ziffer für
Ziffer umkopieren. */
/* Nach jeder 3.
Ziffer ein Tausenderzeichen einfügen. */
while (iSource >= 0)
{
if ((nCounter == 3)
&& (szNumber[iSource] != '-'))
{
szNumber[iDest--]
= chThousand;
nCounter
= 0;
}
szNumber[iDest--] = szNumber[iSource--];
nCounter++;
}
return lstrcpy(lpszBuffer, szNumber);
}
[ ltos.c ]
[ <<
Vorheriger ] [ Übersicht ]
[ Nächster
>> ]
|