int atoi(const char *nptr)
long atol(const char *nptr)
long long atoll(const char *nptr)
long long atoq(const char *nptr)
linux下面没对应的好像,我man 没有查到.
给你直接找到一个实现,你放到自己代码里面就可以了
void itoa ( unsigned long val, char *buf, unsigned radix )
{
char *p/* pointer to traverse string */
char *firstdig /* pointer to first digit */
char temp/* temp char */
unsigned digval/* value of digit */
p = buf
firstdig = p /* save pointer to first digit */
do {
digval = (unsigned) (val % radix)
val /= radix /* get next digit */
/* convert to ascii and store */
if (digval > 9)
*p++ = (char ) (digval - 10 + 'a ')/* a letter */
else
*p++ = (char ) (digval + '0 ') /* a digit */
} while (val > 0)
/* We now have the digit of the number in the buffer, but in reverse
order. Thus we reverse them now. */
*p-- = '\0 '/* terminate string p points to last digit */
do {
temp = *p
*p = *firstdig
*firstdig = temp /* swap *p and *firstdig */
--p
++firstdig /* advance to next two digits */
} while (firstdig < p) /* repeat until halfway */
}
itoa是广泛应用的非标准C语言扩展函数。由于它不是标准C语言函数,所以不能在所有的编译器中使用。但是,大多数的编译器(如Windows上的)通常在<stdlib.h>头文件中包含这个函数。在<stdlib.h>中与之有相反功能的函数是atoi。功能:把一整数转换为字符串。char *itoa(int value, char *string, int radix)头文件: <stdlib.h>程序例: #include <stdlib.h>#include <stdio.h>int main() { int number = 123456char string[25]itoa(number, string, 10)printf("integer = %d string = %s\n", number, string)return 0}可以用sprintf间接实现。char num[20]
int n = 365
sprintf (num, "%d", n)
到这里num就是"365"的字符串了。
如果是用c++的话可以用sstream头文件里的stringstream实现同样的功能
stringstream num
int n = 365
num<<n
这里可以用num.str()和num.c_str(),前者是c++的string类型,后者是c的char *类型。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)