#include <stdio.h>
#include <limits.h>
#define MAXLINE 1000
void itoa(int n, char s[], int w);
void reverse(char s[]);
int main(void){
char s[MAXLINE];
int width;
width = 11;
itoa(INT_MIN, s, width);
printf(%12d is converted to %s.\n, INT_MIN, s);
itoa(123, s, width);
printf(%12d is converted to %s.\n, 123, s);
itoa(-321, s, width);
printf(%12d is converted to %s.\n, -321, s);
return 0;
}
void itoa(int n, char s[], int w){
int i = 0, sign= n, remainder, k, j;
do {
remainder = n % 10;
s[i++] = ((sign < 0) ? -remainder : remainder) + '0';
} while (n /= 10);
if (sign < 0)
s[i++] = '-';
while (i < w)
s[i++] = ' ';
s[i] = '\0';
reverse(s);
}
void reverse(char s[]){
int tmp;
int j = 0;
for (j = 0; s[j] != '\0'; ++j)
;
--j;
for (int i = 0; i < j; ++i, --j) {
tmp = s[i];
s[i] = s[j];
s[j] = tmp;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。