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

最佳答案

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;
     }
 }

请参阅注释以了解为什么要删除它,尽管它对其他值也很有用。

关于c - GNU C运行时库中的哪些函数在标准库中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5156236/

10-12 23:52