整数转换字符串

思路:首先确定整数的长度,这样做有两个好处。

  • 一个是用于节省内存,因为要事先申请字符串地址空间;
  • 一个是长度后,可以直接取整数的高位,不需要从个位取,从个位取构成的字符串后面还需要一个逆序

具体代码如下:

/*
 *整数转化成字符串
*/

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

char *IntToString(int a)
{
    int temp=a;//保存a的值
    int len;//缓存用地
    int b=a%10;
    int count=0;//计算整数的长度
    char *string;
    while(b!=0)
    {
        count++;
        a=a/10;
        b=a%10;
        if(b==a)
            break;
    }
    count++;
    string=(char *)malloc(count+1);
    b=temp%10;
    len=count;
    printf("count=%d\n",count);
    while(temp)
    {
        a=temp/Mypow10(--count);
        (*string++)=a+‘0‘;
        temp=temp-a*Mypow10(count);
    }
    *string=0;
    string=string-len;
    return string;
}

int Mypow10(int a)
{
    if(a<0)
        return 0;
    int i=1;
    int sum=1;
    for(i=1;i<=a;i++)
    {
        sum=sum*10;
    }
    return sum;
}
int main(void)
{
    int a=123;
    printf("请输入一个整数:\n");
    scanf("%d",&a);
    char *b=IntToString(a);
    printf("%s\n",b);
    return 0;
}
时间: 2024-10-30 00:17:33

整数转换字符串的相关文章

Java整数和字符串转换

字符串转换整数: 虽然有类似的Integer.parseInt(),但是笔试面试明显不会如此: 转字符串可以考虑为: 1.单个字符的转换 2.权值 如:从前往后依次扫描,则每次扫描一个字符  前面数值*10: 如345,扫描3,再3*10+4,再34*10+5............ 从后往前扫描类似处理: class ParsInt{ public static void main(String[] args) { // TODO, add your application code Syst

转换字符串到整数

转换字符串到整数 实现atoi这个函数,将一个字符串转换为整数.如果没有合法的整数,返回0.如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数. 样例 "10" =>10 "-1" => -1 "123123123123123" => 2147483647 "1.0" => 1 标签 字符串处理 基本实现 优步

JAVASCRIPT 转换字符串杂记

Number()遇到null会转换为0,遇到underfind会转换为NaN. 一般整数用parseInt()方法,遇到空会转换成NaN.(注意差别)该方法可设置第二个参数 parseInt("要转换字符串",几进制).遇到小数点会停止解析,后面忽略. parseFloat()也是从第一个字符开始解析,直到末尾或者遇见一个无效的浮点数字字符(第二个小数点)为止.十六进制字符串始终被解释为0,只解析十进制,没有第二个参数. toString()方法可以直接调用不需要输入参数,在调用数值的

c语言实现将一个整数转换为字符串

#include<stdio.h> void convert(int n) { int i; if ((i=n/10)!=0) convert(i); putchar(n%10+'0'); } int main() { int number; printf("\nInput an integer:"); scanf("%d",&number); printf("Output:"); if (number<0) { put

用itoa()函数将整数转换为字符串

在C语言中提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串.以下是用itoa()函数将整数转换为字符串的一个例子:atoi     把字符串转换成整型数itoa     把一整数转换为字符串 下面分享一下应用范例,可学习0基础C语言开发教程: #include "stdio.h" #include "ctype.h" #include "stdlib.h" /* Converts a character strin

整数转字符串,字符串转整数

题目:输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 题目比较简单,但是涉及到许多问题,例如非法输入,有正负号,是否为空字符串,且不是输入大数类型,可以用long long,8字节整型等等.主要:int a=a*10+(str[i]-'0') 也可以直接使用c的库函数,atoi函数,如果不能转换则返回0.使用例子如下 string a="-1232 pighehe"; int num=atoi(a); 1 #inc

Objective-C中整数与字符串的相互转换

2013/4/15整理: 将整数转换成字符串 Convert Integer to NSString: 方法一: int Value = 112233; NSString *ValueString = [NSString stringWithFormat:@"%d", Value]; 方法二: [[NSNumber numberWithInt: 123] stringValue]; 得到C风格的字符串 C String char *ValueasCString = (char *)[V

第13题:整数转换成罗马数字&amp;第14题:罗马数字转换成整数

写在前面: 这两道题合起来写吧,其实整数转罗马数字我前天就写完了,当我想写罗马数转整数的时候竟然脑子一片空白,想了几分钟就想起来Map,本着学习的目的最终还是不想用Map,坚持C语言,今天脑子里直接涌出了Switch方式转换,看来"蹲在马桶上编程"的方式还是蛮不错的o(^▽^)o 整数转罗马数字:主要建立对应关系,输出时有点像百钱百鸡 罗马数字转整数:输入罗马数字(其实就是字符数组)后,for循环遍历,找出对应,这个再看不懂的建议去看看罗马数字表示方法. 第13题:整数转换成罗马数字

对象、数组转换字符串

对象转换成字符串需要使用toString()方法. 1 var a = function(){ 2 console.log(111); 3 }; 4 var b = a.toString(); 5 console.log(a); 函数式的function 6 console.log(b); 字符串function 7 console.log(typeof a); >>function 8 console.log(typeof b); >>string 数组转换字符串 1.0 1 v