为了方便读数字一般都会在数字中加千分号来快速识别数字,列如3,0000,0000这样一眼就来看出是3亿。下面写出一个函数来快速格式化一个带千分号的字符串。经过测试速度相当快,不使用任何库函数支持。 CHAR* GetNumberString(LONGLONG lNumber, CHAR *pBuffer, int nLenght) { ASSERT(pBuffer!=NULL); ASSERT(AfxIsValidAddress(pBuffer,nLenght)); if (pBuffer==NULL || nLenght<=0) return NULL; memset(pBuffer,0,nLenght); CHAR *p = pBuffer; if (lNumber==0) { *p++='0'; return pBuffer; } int nCount=0,nLen=0; CHAR szNumber[64]={0}; if (lNumber<0) { *p++='-'; lNumber=-lNumber; } while (lNumber>0) { szNumber[nLen++]=CHAR(lNumber % 10) + 0x30; nCount++; if (nCount==4) { szNumber[nLen++]=','; nCount=0; } lNumber/=10; } //判断结尾 if (szNumber[nLen-1]==',') nLen--; //复制字符串 while (--nLen>=0) *p++=szNumber[nLen]; return pBuffer; }