实现整数转成字符串

Posted 善良超锅锅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现整数转成字符串相关的知识,希望对你有一定的参考价值。

实现整数转成字符串

题目

用 C 语言实现,将一个整数转成字符串,比如 123 转成“123”。要求不能使用 itoa 等函数。

代码

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

char * itostr(int v)

    int a;
    if(v < 0)
    
        a = -v;
    
    else
    
        a = v;
    

    char *str = (char*)malloc(32);
    memset(str, 0, 32);
    int i = 0;
    while(a!=0)
    
        int tem = a % 10;
        a /= 10;
        str[i++] = '0' + tem;
    

    if(v < 0)
    
        str[i++] = '-';
    

    char *str2 = (char*)malloc(i);
    int j = 0;
    for(; j < i; j++)
    
        str2[j] = str[i-j-1];
        //printf("%c", str2[j]);
    
    str2[j] = '\\0';

    free(str);
    return str2;


int main()

    printf("%s\\n", itostr(123));
    printf("%s\\n", itostr(-123456));
    printf("%s\\n", itostr(2147483647)); // 2*31-1

    return 0;

另一种取巧的方法,如果可以使用 sprintf

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

char * itostr(int v)

    char *str = (char*)malloc(32);
    memset(str, 0, 32);
    sprintf(str, "%d", v);
    return str;



int main()

    printf("%s\\n", itostr(123));
    printf("%s\\n", itostr(-123456));
    printf("%s\\n", itostr(2147483647)); // 2*31-1

    return 0;

测试结果相同。

以上是关于实现整数转成字符串的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode-面试算法经典-Java实现008-String to Integer (atoi) (字符串转成整数)

在c#中如何实现判断一个数值是不是为整数(或小数)?

在c#中如何实现判断一个数值是不是为整数(或小数) 谢谢

C语言程序答案:将一个整数n转成字符串输出。???不用递归法,还能怎么写

2字节字符串,怎么转成整数

VC2010中整数转成字符串