GNU C运行时库中的哪些函数在标准库中?

时间:2011-03-01 15:04:27

标签: c gnu

如何找出GNU C支持的CRT功能是标准库的一部分?例如:atoi()和itoa()。

6 个答案:

答案 0 :(得分:2)

atoi()是标准库的一部分 itoa()不属于标准库。


您可以通过这种方式实现它:

 #include <string.h>

 void itoa(int input, void (*subr)(char));

 void itoa(int n, char s[]) {
     int i, sign;

     if ((sign = n) < 0)  /* record sign */
         n = -n;          /* make n positive */
     i = 0;
     do {       /* generate digits in reverse order */
         s[i++] = n % 10 + '0';   /* get next digit */
     } while ((n /= 10) > 0);     /* delete it */
     if (sign < 0)
         s[i++] = '-';
     s[i] = '\0';
     reverse(s);
 }


 /* reverse:  reverse string s in place */
 void reverse(char s[]) {
     int i, j;
     char c;

     for (i = 0, j = strlen(s)-1; i<j; i++, j--) {
         c = s[i];
         s[i] = s[j];
         s[j] = c;
     }
 }

<击>

请参阅评论以了解为什么会这样做,尽管它适用于其他值。

答案 1 :(得分:2)

atoiitoa中的每一个引用维基百科的第一段内容:

atoi

atoi 是C编程语言中的一个函数,它将字符串转换为整数数字表示形式。 atoi代表ASCII到整数。 它包含在C标准库头文件stdlib.h 中。

itoa

itoa(整数到ASCII)函数是标准C编程语言的广泛非标准扩展。它不能被轻易使用,因为没有在任何C语言标准中定义;但是,编译器通常在处于非符合模式时通过标头提供它,因为它是标准库函数atoi的逻辑对应物。

答案 2 :(得分:1)

您的问题的答案显然可能是使用标准库引用。最终参考是ISO标准。但是还有其他Dinkumware C Library例如。

答案 3 :(得分:0)

itoa不是标准库的一部分;这是一个共同的扩展。

atoi是标准库的一部分,其原型在stdlib.hn1256,§7.20.1.2)中声明。

有关哪些函数是标准库的一部分的完整列表,请参阅在线C标准,草案n1256,§7(库)。

答案 4 :(得分:0)

我确信至少atoi()在std库中。

维基百科确认atoi() itoa()

答案 5 :(得分:0)

itoa不在标准库中./