linux里使用不了itoa函数吗?

linux里使用不了itoa函数吗?,第1张

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}

#include <stdlib.h>

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 */

}

连续除以2,让余数倒排即可,我写了个输出成int的,只不过这个int是二进制而已,你可以参考

int to2(int n)

{

    int r=0

    int shang,yushu

    shang=n

    while(shang!=0)

    {

        yushu=shang%2

        r=r*10+yushu

        shang=shang/2

    }

    return r

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7226471.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存