实现itoa, int类型转字符类型

#include <stdio.h>
#include <string.h>

#define N 48
char s[N];
/*
void printd(int n)
{
    if (n<0){ 
        putchar('-'); 
        n=-n; 
    }
    if (n/10)
        printd(n/10);
    putchar(n%10+'0');
}
*/

void reverse(char s[]){
    int i, j, n=strlen(s), tmp;
    for (i=0, j=n-1; i<j; i++, j--)
        tmp = s[i], s[i] = s[j], s[j] = tmp;
}

char *myitoa(int n){
    int i=0, sign = n;
    char c;
    if (sign < 0) 
        n = -n;
    do {
        s[i++] = n%10 + '0'; 
        n = n/10;
    } while (n> 0);

    if (sign < 0) 
        s[i++] = '-';
    s[i] = '\0';//最后加上字符串结束符
    reverse(s);

    return s;
}

int main(){
    printf("%s\n", myitoa(123456789));
    return 0;
}
发布了25 篇原创文章 · 获赞 2 · 访问量 827

猜你喜欢

转载自blog.csdn.net/yangjinjingbj/article/details/104033352