精华内容
下载资源
问答
  • 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <limits.h> 5 6 #define MAX_INT_DIGIT 10 7 8 9 int * getSizeTable();...
      1 #include <stdio.h>
      2 #include <stdlib.h>
      3 #include <string.h>
      4 #include <limits.h>
      5 
      6 #define MAX_INT_DIGIT 10
      7 
      8 
      9 int * getSizeTable();
     10 char* int2str(const int);
     11 int power(int, int);
     12 int str2int(const char*);
     13 
     14 #define ERROR -1
     15 
     16 
     17 main()
     18 {
     19     int n = 1024;
     20     char* s = int2str(n);
     21     printf(" %d = \"%s\"\n", n , s );
     22 
     23     n = 0 ; 
     24     s = int2str(n);
     25     printf(" %d = \"%s\"\n", n , s );    
     26 
     27     n = 1234567890;
     28     s = int2str(n);
     29     printf(" %d = \"%s\"\n", n , s );
     30 
     31     n = str2int(s);    
     32     printf(" \"%s\" = %d \n", s , n );    
     33 
     34 }
     35 
     36 
     37 int power(int base, int n)
     38 {
     39     int result = ERROR;
     40     int m = 0 ;
     41 
     42     if(base <= 0)
     43     {
     44         return result;
     45     }
     46 
     47     if(n < 0)
     48     {
     49         return result;
     50     }
     51 
     52     result = 1 ;
     53 
     54     for(; m < n; m++)
     55     {
     56         result *= base;
     57     }
     58 
     59     return result;
     60 }
     61 
     62 
     63 /**
     64  * str2int  
     65  */
     66 int str2int(const char* string)
     67 {
     68     int result = 0;
     69 
     70     int size = (int)strlen(string);
     71     int index = 0;
     72     int base = 10;
     73     int convert= 0;
     74     int n = 0;
     75 
     76     /*
     77     printf("%s size = %d\n", string ,size );
     78     */
     79 
     80     for(index = 0 ; index<= size -1 ; index++)
     81     {
     82         int c = string[index];
     83         if(c < '0' || c > '9')
     84         {            
     85             convert  = ERROR;             
     86             break;
     87         }
     88         int n = power(10, size -1 - index);
     89         if(n == ERROR)
     90         {
     91             convert = ERROR;
     92             break;
     93         }
     94 
     95         n = n * (string[index] - 48);
     96 
     97         /*
     98         n = n * (string[index] - '0');
     99         */
    100 
    101         convert += n; 
    102 
    103         /*
    104         printf("%c * pow(10, %d) = %d\n", string[index], (size - 1 - index), n );
    105         */
    106     }
    107 
    108     result = convert;
    109 
    110     return result;
    111 
    112 }
    113 
    114 
    115 char* int2str(const int n)
    116 {
    117     int absn = abs(n);
    118 
    119     int digit = getDigit(absn) + 1 ;
    120 
    121     char *number = (char *) malloc (digit * sizeof(char));
    122 
    123     int index = 0, difference = 0, realDigit = digit;
    124 
    125     for(; index < digit ; index++ )
    126     {
    127         realDigit = realDigit - 1;
    128         int iDigit = 0;
    129         if(index == 0)
    130         {
    131             iDigit = (absn/ power(10, realDigit ));    
    132             difference = absn % (power(10, realDigit));
    133         }
    134         else
    135         {
    136             iDigit = (difference/ power(10, realDigit ));    
    137             difference = difference % (power(10, realDigit));
    138         }
    139          
    140         char c  = {iDigit + '0'};
    141         char cc[2];
    142         cc[0] = c;
    143         cc[1] = '\0';
    144         number = strcat(number, cc);
    145 
    146     }
    147 
    148     return number;
    149 }
    150 
    151 
    152 int * getSizeTable()
    153 {
    154       int * sizeTable  = sizeTable =  (int *) malloc (MAX_INT_DIGIT * sizeof(int));
    155 
    156       int index = 0, digit = 10, sum = 0;
    157       for( ; index < MAX_INT_DIGIT - 1 ; index++ )
    158       {
    159           sum += power(digit, index) * 9; 
    160           *( sizeTable + index ) = sum;         
    161       }
    162 
    163       *(sizeTable + MAX_INT_DIGIT -1 ) = INT_MAX;
    164 
    165       return sizeTable;
    166 
    167 }
    168 
    169 
    170 int getDigit(int nInt)
    171 {    
    172     int result = 0,min = 0, index = 0 ;
    173     int * sizeTable = getSizeTable();
    174     for(; index < MAX_INT_DIGIT; index++)
    175     {
    176         if(nInt <= *(sizeTable + index))
    177         {
    178             result = index;
    179             break;
    180         }
    181     }
    182 
    183     return result;
    184 
    185 }
    View Code

     

     运行的结果是:

    转载于:https://www.cnblogs.com/jie1983/p/3539086.html

    展开全文
  • C语言整型字符串之间的转换

    千次阅读 2013-09-27 15:32:26
    C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点等)的数字转换为字符串。以下是用itoa()函数将整数 换为字符串的一个例子:  # include  # include    void main (void)  {  int num ...

    C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:

        # include <stdio.h>
        # include <stdlib.h>
     
        void main (void)
        {
        int num = 100;
        char str[25];
        itoa(num, str, 10);
        printf("The number ’num’ is %d and the string ’str’ is %s. /n" ,
        num, str);
        }

        itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用 的基数。在上例中,转换基数为10。10:十进制;2:二进制...
        itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。
        是Windows平台下扩展的,标准库中有sprintf,功能比这个更强,用法跟printf类似:

     例如:

    	long a = 222222333;
    	char buf[10];
    	sprintf_s(buf,"%ld",32768);
    	cout<<buf;
    	for( int i =0; i < strlen(buf); i++ )
    	{
    		cout<<buf[i]<<setw(3);
    	}

     

    函数名: atol

      功 能: 把字符串转换成长整型数

      用 法: long atol(const char *nptr);

      程序例:

    #include <stdlib.h>
      #include <stdio.h>
      int main(void)
      {
      long l;
      char *str = "98765432";
      l = atol(str); /* 原来为l = atol(lstr); */
      printf("string = %s integer = %ld/n", str, l);
      return(0);
      }
      atol(将字符串转换成长整型数)

      相关函数 atof,atoi,strtod,strtol,strtoul

      表头文件 #include<stdlib.h>

      定义函数 long atol(const char *nptr);

      函数说明 atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('/0')才结束转换,并将结果返回。

      返回值 返回转换后的长整型数。

      附加说明 atol()与使用strtol(nptr,(char**)NULL,10);结果相同。

      范例 /*将字符串a与字符串b转换成数字后相加*/

      #include<stdlib.h>
      main()
      {
      char a[]=”1000000000”;
      char b[]=” 234567890”;
      long c;
      c=atol(a)+atol(b);
      printf(“c=%d/n”,c);
      }
     执行 c=1234567890

    展开全文
  • 整型数到字符型的转换,写的很精巧,贴出来大家看看void convert(int n)...{ int i; if( ( i=n/10) != 0 ) ...{ convert(i); } putchar( n%10+0 );}

     

    整型数到字符型的转换,写的很精巧,贴出来大家看看

    void convert(int n)
    {
       
    int i;
       
    if( ( i=n/10!= 0 )
       

          convert(i);
       }

       putchar( n
    %10+'0' );
    }

    展开全文
  • 1.python 字符串和整数的转换 常用的格式化字符串: %d 整数 %f%F 浮点数 %e%E 科学计数 %g%G e 和%f/%E 和%F 的简写 %% 输出% 格式化操作符辅助指令 符号 作用 * 定义宽度或者小数点精度 - 用做左对齐 + 在...

    1.python 字符串和整数的转换

    直接使用:float(‘31.2534’)
    但要注意使用float()时,传入括号里的一定要有数据,不能是空,比如‘’ ,这个不行。

    常用的格式化字符串:
    %d            整数
    %f%F          浮点数
    %e%E          科学计数
    %g%G          e 和%f/%E 和%F 的简写 
    %%            输出%
    
    格式化操作符辅助指令 
    符号                作用 
    *            定义宽度或者小数点精度 
    -            用做左对齐 
    +            在正数前面显示加号( + ) 
    <sp>         在正数前面显示空格 
    #            在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') 
    0            显示的数字前面填充‘0’而不是默认的空格 
    %            '%%'输出一个单一的'%' 
    (var)        映射变量(字典参数) 
    m.n          m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) 
    
    示例:
    '%f' % 1234.567890     输出:'1234.567890'
     
    '%.2f' % 1234.567890   输出:'1234.57'

    2.C语言中的格式转换函数

    2.1 atof(将字符串转换成浮点型数)

    2.2atoi(将字符串转换成整型数)

    2.3atol(将字符串转换成长整型数)

    2.4gcvt(将浮点型数转换为字符串,取四舍五入) gcvt()与ecvt()和fcvt()不同

    在Keil中,#include <stdlib.h>
    #include <string.h> 不包含gcvt(),就可以用 sprintf()
    sprintf()函数的用法总结

    sprintf 最常见的应用之一是把整数打印到字符串中,所以,spritnf 在大多数场合可以替代itoa。如:
    1>把整数123 打印成一个字符串保存在s 中。
        sprintf(s, "%d", 123); //产生"123"
    2>可以指定宽度,不足的左边补空格:
        sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"
    3>当然也可以左对齐:
        sprintf(s, "%-8d%8d", 123, 4567); //产生:"123 4567"
    4>也可以按照16 进制打印:
        sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置,右对齐
        sprintf(s, "%-8X", 4568); //大写16 进制,宽度占8 个位置,左对齐
        这样,一个整数的16 进制字符串就很容易得到,但我们在打印16 进制内容时,通常想要一种左边补0 的等宽格式,那该怎么做呢?很简单,在表示宽度的数字前面加个0 就可以了。
        sprintf(s, "%08X", 4567); //产生:"000011D7"
        上面以”%d”进行的10 进制打印同样也可以使用这种左边补0 的方式。

    2.5strtod(将字符串转换成浮点数)

    2.6strtol(将字符串转换成长整型数)

    2.7ascii(将整型数转换成合法的ASCII 码字符)

    2.8tolower(将大写字母转换成小写字母)

    2.9toupper(将小写字母转换成大写字母)

    2.10 有两种方法可以实现C语言中怎么把一维数组赋给另外一个一维数组。

    2.10.1 逐个赋值du法。

    采用循环,逐项赋值。
    以整型为例,int a[10], b[10];要把a的值赋值给b,可以写作int i;for(i = 0; i < 10; i ++) b[i] = a[i];

    2.10.2 整体复制法。(这个方法复制字符串好用,整型、浮点型数组不好用)

    利用C语言库函数memcpy可以整体复制。
    memcpy声明与string.h中,
    形式为:
    void * memcpy(void *dst, void *src, int length);
    其功能为将src地址上长度为length字节的数据,复制到dst上。于是上一个方法中的例子,可以用memcpy(b,a,sizeof(a));来实现相同效果。

    展开全文
  • 整型字符型相互转换——C语言

    千次阅读 2016-09-28 20:13:30
    字符型转换为整型: #include #include #define MAX_SIZE 100 int my_atoi(char *src) { int flag = 1; int result = 0; if(*src == '-') { flag = -1; src++; } while(*src != '\0') { if...
  • 字符型转换为整型: #include #include   #define MAX_SIZE 100   int my_atoi(char *src) {  int flag = 1;    int result = 0;    if(*src == '-')  {  flag = -1;  sr
  • C语言数字转换字符

    万次阅读 2019-05-21 22:32:01
    C语言itoa()函数和atoi()函数详解(整数转字符C实现) C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点等)的数字转换为字符串。 1.int/float to string/array: C语言提供了几个标准库函数,可以将...
  • 参考文章链接:1.http://c.biancheng.net/cpp/html/1573.html2.http://c.biancheng.net/cpp/html/1574.html1.整型、浮点——&gt;字符串整数转换为字符串:--------------------------------------------------...
  • 整型转字符

    2019-06-25 16:45:12
    项目中要用到文件操作输出一些结构体信息,包括一些int的数字,为了直观,需要转换成字符串,...// 整型转字符串.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include "pch.h" #include ...
  • 很多面试题都会有字符串操作,网上一大堆都是用库函数实现,因此找不到一个纯c自己写的转换程序,所以post了这篇文章,记录自己的实现过程,以便日后再次复习
  • 1, C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点等)的数字转换为字符串,下面列举了各函数的方法及其说明。 ● itoa():将整型值转换为字符串。 ● ltoa():将长整型值转换为字符串。 ● ultoa...
  • C语言itoa()函数和atoi()函数详解(整数转字符C实现) C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点等)的数字转换为字符串。 1.int/float to string/array: C语言提供了几个标准库函数,可以将...
  • C语言整数与字符串相互转换库函数

    千次阅读 2017-08-09 21:21:16
    C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点等)的数字转换为字符串。 1.int/float to string/array: C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点等)的数字转换为...
  • 主要介绍了C语言中交换int变量的值及转换为字符数组的方法,讲解了以不同进制将整型数字转换成字符数组,需要的朋友可以参考下
  • 1、字符就是整数 字符和整数没有本质的区别。可以给 char变量一个字符,也可以给它一个整数;反过来,可以给 int变量一个整数,也可以给它一个字符。 char 变量在内存中存储的是字符对应的 ASCII 码值。如果以 %c ...
  • C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点等)的数字转换为字符串。 以下是用itoa()函数将整数转换为字符串的一个例子: # include # include void main (void) { int num = 100; ...
  • C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点等)的数字转换为字符串。以下是用itoa()函数将整数转换为字符串的一个例子: # include <stdio. h># include <stdlib. h> void ...
  • 上个星期老师给我们一个题目让我们把字符串中的数字字符找出来然后在把他变成整型的 这个程序分成两个部分,一是在字符串中找出数字字符,二是将数字字符转换成整型数字。 下面附上我的代码,如有不妥请指正。 #...
  • C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点等)的数字转换为字符串,下面列举了各函数的方法及其说明。 ● itoa():将整型值转换为字符串。 ● ltoa():将长整型值转换为字符串。 ● ultoa():...
  • 字符转整型:atoi 字符浮点:atof 字符串分割:strtok #include <iostream> #include <string> #include <stdlib.h> #include <stdio.h> #include <string.h> using ...
  • C语言提供了几个标准库函数,能够将随意类型(整型、长整型、浮点等)的数字转换为字符串。下面是用itoa()函数将整数 换为字符串的一个样例: # include <stdio.h> # include <stdlib.h> void ...
  • C语言如何将整型转化为字符

    千次阅读 2018-12-24 17:12:13
    C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点等)的数字转换为字符串。以下是用itoa()函数将整数转换为字符串的一个例子: include &lt;stdio. h&gt; include &lt;stdlib. h&gt;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 679
精华内容 271
关键字:

c语言整型转字符型

c语言 订阅