各位帮我看看这个数值型转字符串型的函数,是我自己写的,不知执行速度是不是算快?void UINTtoSTR(UINT value,wchar_t * str)//数值型转字符串型
{
int i=0;
do
{
str[i++]=value%10+‘0’;
value/=10;
}
while(value);
str[i--]=0;
//首尾倒置
int j=0,temp;
while(j<i)
{
temp=str[i];
str[i--]=str[j];
str[j++]=temp;
}
}
{
int i=0;
do
{
str[i++]=value%10+‘0’;
value/=10;
}
while(value);
str[i--]=0;
//首尾倒置
int j=0,temp;
while(j<i)
{
temp=str[i];
str[i--]=str[j];
str[j++]=temp;
}
}
你的复杂一些怎么也是O(2n)吧
你那个算符号了么 这个不算符号是O(n) 而且还能转换进制
用原装的好 呵呵
#include <msvcrt/errno.h>
#include <msvcrt/stdlib.h>
#include <msvcrt/internal/file.h>
char* _itoa(int value, char* string, int radix)
{
char tmp[33];
char* tp = tmp;
int i;
unsigned v;
int sign;
char* sp; if (radix > 36 || radix <= 1)
{
__set_errno(EDOM);
return 0;
} sign = (radix == 10 && value < 0);
if (sign)
v = -value;
else
v = (unsigned)value;
while (v || tp == tmp)
{
i = v % radix;
v = v / radix;
if (i < 10)
*tp++ = i+'0';
else
*tp++ = i + 'a' - 10;
} if (string == 0)
string = (char*)malloc((tp-tmp)+sign+1);
sp = string; if (sign)
*sp++ = '-';
while (tp > tmp)
*sp++ = *--tp;
*sp = 0;
return string;
}