如何找出GNU C支持的CRT功能是标准库的一部分?例如:atoi()和itoa()。
答案 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)
为atoi
和itoa
中的每一个引用维基百科的第一段内容:
atoi
atoi
是C编程语言中的一个函数,它将字符串转换为整数数字表示形式。 atoi代表ASCII到整数。 它包含在C标准库头文件stdlib.h 中。
itoa
itoa
(整数到ASCII)函数是标准C编程语言的广泛非标准扩展。它不能被轻易使用,因为没有在任何C语言标准中定义;但是,编译器通常在处于非符合模式时通过标头提供它,因为它是标准库函数atoi
的逻辑对应物。
答案 2 :(得分:1)
您的问题的答案显然可能是使用标准库引用。最终参考是ISO标准。但是还有其他Dinkumware C Library例如。
答案 3 :(得分:0)
答案 4 :(得分:0)
itoa
不在标准库中./
答案 5 :(得分:0)