单片机 数字转成字符串_单片机把数字转成字符串 - CSDN
  • unsigned int str_to_num(char dig) /–字符串转化为数字–*/ { unsigned int num = 0; while(*dig != ‘\0’) { if(*dig >= ‘0’ && *dig <= ‘9’) { num = num * 10 + (*dig - ‘0’);//(*dig-48)...

    unsigned int str_to_num(char dig) /–字符串转化为数字–*/
    {
    unsigned int num = 0;
    while(*dig != ‘\0’)
    {
    if(*dig >= ‘0’ && *dig <= ‘9’)
    {
    num = num * 10 + (*dig - ‘0’);//(*dig-48)也行
    dig++;
    }
    else
    {
    num = 0;
    break;
    }
    }
    return(num);
    }

    展开全文
  • C51 数字字符串互相转化

    万次阅读 2017-11-16 11:07:05
    C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。 1.int/float to string/array: C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换...

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


    1.int/float to string/array:

    C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。
    ● itoa():将整型值转换为字符串。
    ● ltoa():将长整型值转换为字符串。
    ● ultoa():将无符号长整型值转换为字符串。
    ● gcvt():将浮点型数转换为字符串,取四舍五入。
    ● ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。
    ● fcvt():指定位数为转换精度,其余同ecvt()。

    除此外,还可以使用sprintf系列函数把数字转换成字符串,其比itoa()系列函数运行速度慢

    2. string/array to int/float
    C/C++语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)。
    ● atof():将字符串转换为双精度浮点型值。
    ● atoi():将字符串转换为整型值。
    ● atol():将字符串转换为长整型值。
    ● strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。
    ● strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。
    ● strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

    以下是用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类似:

    char str[255];
    sprintf(str, "%x", 100); //将100转为16进制表示的字符串。

    下列函数可以将整数转换为字符串:
    ----------------------------------------------------------
    函数名 用
    ----------------------------------------------------------
    itoa() 将整型值转换为字符串
    itoa() 将长整型值转换为字符串
    ultoa() 将无符号长整型值转换为字符串

    一、atoi()——把字符串转换成整型数
    考点:字符串转换为数字时,对相关ASCII码的理解。
     
    C实现:
    #include <ctype.h>
    #include <stdio.h>
    int atoi (char s[]);
    int main(void )
    {
    char s[100];
    gets(s);
    printf("integer=%d\n",atoi(s));
    return 0;
    }
    int atoi (char s[])
    {
    int i,n,sign;
    for(i=0;isspace(s[i]);i++)//跳过空白符;
    sign=(s[i]=='-')?-1:1;
    if(s[i]=='+'||s[i]==' -')//跳过符号
      i++;
    for(n=0;isdigit(s[i]);i++)
           n=10*n+(s[i]-'0');//将数字字符转换成整形数字
    return sign *n;
    }


    C++实现:
    1    #include <iostream>
    2    using namespace std;
    3  
    4    int str2int(const char *str)
    5    {
    6        int temp = 0;
    7        const char *ptr = str;  //ptr保存str字符串开头
    8  
    9        if (*str == '-' || *str == '+')  //如果第一个字符是正负号,
    10       {                      //则移到下一个字符
    11           str++;
    12       }
    13       while(*str != 0)
    14       {
    15           if ((*str < '0') || (*str > '9'))  //如果当前字符不是数字
    16           {                       //则退出循环
    17               break;
    18           }
    19           temp = temp * 10 + (*str - '0'); //如果当前字符是数字则计算数值
    20           str++;      //移到下一个字符
    21       }  
    22       if (*ptr == '-')     //如果字符串是以“-”开头,则转换成其相反数
    23       {
    24           temp = -temp;
    25       }
    26 
    27       return temp;
    28   }
    29 
    30   int main()
    31   {
    32       int n = 0;  
    33       char p[10] = "";
    34 
    35       cin.getline(p, 20);   //从终端获取一个字符串
    36       n = str2int(p);      //把字符串转换成整型数
    37      
    38       cout << n << endl;
    39 
    40       return 0;
    41   }

    二、itoa()——把一整数转换为字符串
    通过把整数的各位上的数字加“0”转换成char类型并存到字符数组中。但是要注意,需要采用字符串逆序的方法
     
    C语言实现:
    #include <ctype.h>
    #include <stdio.h>
    void      itoa (int n,char s[]);
    //atoi 函数:将s转换为整形数
    int main(void )
    {
    int n;
    char s[100];
    printf("Input n:\n");
    scanf("%d",&n);
    printf("the string : \n");
    itoa (n,s);
    return 0;
    }
    void itoa (int n,char s[])
    {
    int i,j,sign;
    if((sign=n)<0)//记录符号
    n=-n;//使n成为正数
    i=0;
    do{
           s[i++]=n%10+'0';//取下一个数字
    }
    while ((n/=10)>0);//删除该数字
    if(sign<0)
    s[i++]='-';
    s[i]='\0';
    for(j=i;j>=0;j--)//生成的数字是逆序的,所以要逆序输出
           printf("%c",s[j]);
    }

    是int 转string类型的一个函数
     
    C++实现:
    1    #include <iostream>
    2    using namespace std;
    3   
    4    void int2str(int n, char *str)
    5    {
    6        char buf[10] = "";
    7        int i = 0;
    8        int len = 0;
    9        int temp = n < 0 ? -n: n;  // temp为n的绝对值
    10  
    11       if (str == NULL)
    12       {
    13           return;
    14       }
    15       while(temp)
    16       {
    17           buf[i++] = (temp % 10) + '0';  //把temp的每一位上的数存入buf
    18           temp = temp / 10;
    19       }
    20  
    21       len = n < 0 ? ++i: i;  //如果n是负数,则多需要一位来存储负号
    22       str[i] = 0;            //末尾是结束符0
    23       while(1)
    24       {
    25           i--;
    26           if (buf[len-i-1] ==0)
    27           {
    28               break;
    29           }
    30           str[i] = buf[len-i-1];  //把buf数组里的字符拷到字符串
    31       }
    32       if (i == 0 )
    33       {
    34           str[i] = '-';          //如果是负数,添加一个负号
    35       }
    36   }
    37  
    38   int main()
    39   {
    40       int nNum;
    41       char p[10];
    42  
    43       cout << "Please input an integer:";
    44       cin >> nNum;
    45       cout << "output: " ;
    46       int2str(nNum, p);        //整型转换成字符串
    47       cout<< p << endl;
    48  
    49       return 0;
    50   }

    转自:https://www.cnblogs.com/bluestorm/p/3168719.html


    在C51中如何将数字转换成字符串的问题

    将整数转换成字符串,在C51中你如何做? 

    这个问题似乎很简单,keilC中也用sprintf()函数嘛,用就行了。但对于“寸土寸金”的单片机来说,问

    题可没那么简单。

    看看我代码中这句弃之不用的代码吧:

    //sprintf(sFileLen,"%d",fileLen*128);print(sFileLen); //使用这个库函数,体积一下增加2563. 我

    的程序空间马上溢出不够用了。 OMG! C51库函数,伤不起啊

    能自己写就自己写,尽量不用库函数吧。谱太大,用不起啊。下面这个函数就是类似sprintf()的作用。

    为了节省几个字节,结果就直接发出来了,不必存储到uchar[]中了。

    // 向串口发送一个整数,支持0-65535,如 uint=8189,发送的是'8'  '1'  '8'  '9' 
    void serial_put_uint(unsigned int number)
    {
          unsigned int i;
          unsigned int nTmp;

         //感觉这写法怪怪的吗?干嘛不for(i=1;i<5;i++) 因为这样不需要使用库函数pow()
         for(i=10000;i>=1;i=i/10)

          {
                nTmp = number/i;
                if(nTmp >=1 ) serial_put_char((unsigned char)(nTmp%10 + 0x30));
          }
    }


    http://blog.csdn.net/dreamfine/article/details/7627143

     

    在C51中如何将数字转换成字符串的问题

    昨天试验通过了关于 sprintf 函数的使用,发现,他太占空间了,几乎点了900多的空间,总空间才5K 有点得不偿失,于是,我自己写了一个小的函数将此问题解决了!

    ?void num2char(int num,unsigned char temp[3]) 一定要注意这里的字符串长度。
    {
    int i;
    i = 2;    // 与这里的字符串长度相对应,从最后一个字符位开始。

    do{
        temp[i] = num%10+'0';       //不太清楚,为什么这里加上 ‘0’ 就是字符了呢!

        num/=10;

    i = i -1;
           
    } while(i>=0);

    }

     

    已试验通过。如 num2char(45,s[3]), 得到的结果是 045.



    转自:http://www.eeworld.com.cn/mcu/article_2016102230745.html







    展开全文
  • 用的是STM32F103ZET6单片机,把数字与10求余取出单个数字,再加上’0’变转化为字符了。 str.h头文件 #ifndef __STR_H #define __STR_H #include “sys.h” //extern char string[16]; void ConvertNumToString(int ...

    用的是STM32F103ZET6单片机,把数字与10求余取出单个数字,再加上’0’变转化为字符了。

    str.h头文件
    #ifndef __STR_H
    #define __STR_H
    #include “sys.h”

    //extern char string[16];
    void ConvertNumToString(int number);
    void loop(void);
    #endif

    str.c文件
    #include “stm32f10x.h”
    #include “str.h”
    #include “usart.h”
    #include “string.h”

    char string[14]={0};
    char temp[10]={0},str[10]={0};

    void ConvertNumToString(int num){

    int i=0,j=0;

     while(num)
    {
        temp[i++]=num%10+'0'; //加'0'后变为字符
        num/=10;               
    }
    temp[i]='\0';  //里面数字顺序为倒序
    i=i-1;
    while(i>=0)
    

    {
    str[j]=temp[i]; //将顺序变为正序
    i–;
    j++;
    }
    str[j]=’\0’;

    }
    此上将一个数字转化为字符串

    void loop()
    {

    int m=0;
    

    int msg[6]={0};
    msg[0]=2015;
    msg1=12;
    msg2=22;
    msg3=12;
    msg4=15;
    msg[5]=26;
    for (m=0;m<6;m++)
    {
    ConvertNumToString(msg[m]);
    //m++;
    strcat(string,str); //此函数将str所指的字符串复制到string所指的字符串后面,在C中,函数原型存在 <string.h>头文件中。具体可以查找百度

    }

    printf(“time is : %s \r\n”,string);
    //ConvertNumToString(msg[0]);
    //str[j]=’\0’;

    }

    将几个数字转化为字符串并连接起来放在string[]数组当中

    
    # 欢迎使用Markdown编辑器
    
    你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
    
    ## 新的改变
    
    我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
    
     1. **全新的界面设计** ,将会带来全新的写作体验;
     2. 在创作中心设置你喜爱的代码高亮样式,Markdown **将代码片显示选择的高亮样式** 进行展示;
     3. 增加了 **图片拖拽** 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
     4. 全新的 **KaTeX数学公式** 语法;
     5. 增加了支持**甘特图的mermaid语法[^1]** 功能;
     6. 增加了 **多屏幕编辑** Markdown文章功能;
     7. 增加了 **焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置** 等功能,功能按钮位于编辑区域与预览区域中间;
     8. 增加了 **检查列表** 功能。
     [^1]: [mermaid语法说明](https://mermaidjs.github.io/)
    
    ## 功能快捷键
    
    撤销:<kbd>Ctrl/Command</kbd> + <kbd>Z</kbd>
    重做:<kbd>Ctrl/Command</kbd> + <kbd>Y</kbd>
    加粗:<kbd>Ctrl/Command</kbd> + <kbd>B</kbd>
    斜体:<kbd>Ctrl/Command</kbd> + <kbd>I</kbd>
    标题:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>H</kbd>
    无序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>U</kbd>
    有序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>O</kbd>
    检查列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>C</kbd>
    插入代码:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>K`#include "led.h"
    #include "delay.h"
    #include "key.h"
    #include "sys.h"
    #include "lcd.h"
    #include "usart.h"	
    #include "usmart.h"	 
    #include "rtc.h" 
    #include "matrixkey.h"
    //#include "Manchester.h"
     
    /************************************************
     ALIENTEK¾«Ó¢STM32¿ª·¢°åʵÑé15
     RTCʵʱʱÖÓʵÑé  
     ¼¼ÊõÖ§³Ö£ºwww.openedv.com
     ÌÔ±¦µêÆÌ£ºhttp://eboard.taobao.com 
     ¹Øע΢ÐŹ«ÖÚƽ̨΢Ðźţº"ÕýµãÔ­×Ó"£¬Ãâ·Ñ»ñÈ¡STM32×ÊÁÏ¡£
     ¹ãÖÝÊÐÐÇÒíµç×ӿƼ¼ÓÐÏÞ¹«Ë¾  
     ×÷ÕߣºÕýµãÔ­×Ó @ALIENTEK
    ************************************************/
    
    
     
     int main(void)
     {
     extern int flg;	
    extern int i;	 
    	 u8 key=0;
     	u8 t=0;	
    	delay_init();	    	 //ÑÓʱº¯Êý³õʼ»¯	  
    	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//ÉèÖÃÖжÏÓÅÏȼ¶·Ö×éΪ×é2£º2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶
    	uart_init(115200);	 	//´®¿Ú³õʼ»¯Îª115200
     	LED_Init();			     //LED¶Ë¿Ú³õʼ»¯
    	LCD_Init();		
      NUM_Init();	 
    	usmart_dev.init(SystemCoreClock/1000000);	//³õʼ»¯USMART	
    	RTC_Init();	  			//RTC³õʼ»¯
    	POINT_COLOR=RED;//ÉèÖÃ×ÖÌåΪºìÉ« 
    	LCD_ShowString(60,50,200,16,16,"Elite STM32");	
    	LCD_ShowString(60,70,200,16,16,"RTC TEST");	
    	LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
    	LCD_ShowString(60,110,200,16,16,"2015/1/14");		
    	//ÏÔʾʱ¼ä
    	POINT_COLOR=BLUE;//ÉèÖÃ×ÖÌåΪÀ¶É«
    	LCD_ShowString(60,130,200,16,16,"    -  -  ");	   
    	LCD_ShowString(60,162,200,16,16,"  :  :  ");		 
      setup();   
    		
    	while(1)
    	{		
    		key=KEY_Scan(0);	//µÃµ½¼üÖµ
    	   	if(key)
    		{						   
    			switch(key)
    			{				 
    				case WKUP_PRES:	//¿ØÖÆ·äÃùÆ÷
    				input_num();
    					flg=1;
    				  i++;
    				printf("anjian");
    					break; 
    				case KEY1_PRES:	//¿ØÖÆLED1·­×ª	
    		input_num();					
    					flg=1;
    		      i++;
    				printf("anjian");
    					break;
    				case KEY0_PRES:	//ͬʱ¿ØÖÆLED0,LED1·­×ª 
    				input_num();
    					flg=1;
    			    i++;
    				printf("anjian");
    					break;
    			}
    		}
        	//loop();
    
    		if(t!=calendar.sec)
    		{
    			t=calendar.sec;
    			if(flg)
    			{
    			RTC_Init();
    				flg=0;
    				printf("jin");
    			}
    		//loop(); 
    			
    			
    			LCD_ShowNum(60,130,calendar.w_year,4,16);									  
    			LCD_ShowNum(100,130,calendar.w_month,2,16);									  
    			LCD_ShowNum(124,130,calendar  .w_date,2,16);	 
    			switch(calendar.week)
    			{
    				case 0:
    					LCD_ShowString(60,148,200,16,16,"Sunday   ");
    					break;
    				case 1:
    					LCD_ShowString(60,148,200,16,16,"Monday   ");
    					break;
    				case 2:
    					LCD_ShowString(60,148,200,16,16,"Tuesday  ");
    					break;
    				case 3:
    					LCD_ShowString(60,148,200,16,16,"Wednesday");
    					break;
    				case 4:
    					LCD_ShowString(60,148,200,16,16,"Thursday ");
    					break;
    				case 5:
    					LCD_ShowString(60,148,200,16,16,"Friday   ");
    					break;
    				case 6:
    					LCD_ShowString(60,148,200,16,16,"Saturday ");
    					break;  
    			}
    			LCD_ShowNum(60,162,calendar.hour,2,16);									  
    			LCD_ShowNum(84,162,calendar.min,2,16);									  
    			LCD_ShowNum(108,162,calendar.sec,2,16);
    			LED0=!LED0;
    		}	
    		
    		delay_ms(10);								  
    	}
    	
    	
     }
    
    `</kbd>
    插入链接:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>L</kbd>
    插入图片:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>G</kbd>
    
    
    ## 合理的创建标题,有助于目录的生成
    
    直接输入1次<kbd>#</kbd>,并按下<kbd>space</kbd>后,将生成1级标题。
    输入2次<kbd>#</kbd>,并按下<kbd>space</kbd>后,将生成2级标题。
    以此类推,我们支持6级标题。有助于使用`TOC`语法后生成一个完美的目录。
    
    
    
    ## 如何改变文本的样式
    
    *强调文本* _强调文本_
    
    **加粗文本** __加粗文本__
    
    ==标记文本==
    
    ~~删除文本~~
    
    > 引用文本
    
    H~2~O is是液体。
    
    2^10^ 运算结果是 1024.
    
    
    
    ## 插入链接与图片
    
    链接: [link](https://mp.csdn.net).
    
    图片: ![Alt](https://avatar.csdn.net/7/7/B/1_ralf_hx163com.jpg)
    
    带尺寸的图片: ![Alt](https://avatar.csdn.net/7/7/B/1_ralf_hx163com.jpg =30x30)
    
    居中的图片: ![Alt](https://avatar.csdn.net/7/7/B/1_ralf_hx163com.jpg#pic_center)
    
    居中并且带尺寸的图片: ![Alt](https://avatar.csdn.net/7/7/B/1_ralf_hx163com.jpg#pic_center =30x30)
    
    当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
    
    
    ## 如何插入一段漂亮的代码片
    
    去[博客设置](https://mp.csdn.net/configure)页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 `代码片`.
    ```javascript
    // An highlighted block
    var foo = 'bar';
    

    生成一个适合你的列表

    • 项目
      • 项目
        • 项目
    1. 项目1
    2. 项目2
    3. 项目3
    • 计划任务
    • 完成任务

    创建一个表格

    一个简单的表格是这么创建的:

    项目 Value
    电脑 $1600
    手机 $12
    导管 $1

    设定内容居中、居左、居右

    使用:---------:居中
    使用:----------居左
    使用----------:居右

    第一列 第二列 第三列
    第一列文本居中 第二列文本居右 第三列文本居左

    SmartyPants

    SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

    TYPE ASCII HTML
    Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
    Quotes "Isn't this fun?" “Isn’t this fun?”
    Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

    创建一个自定义列表

    Markdown
    Text-to-HTML conversion tool
    Authors
    John
    Luke

    如何创建一个注脚

    一个具有注脚的文本。1

    注释也是必不可少的

    Markdown将文本转换为 HTML

    KaTeX数学公式

    您可以使用渲染LaTeX数学表达式 KaTeX:

    Gamma公式展示 Γ(n)=(n1)!nN\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N 是通过欧拉积分

    Γ(z)=0tz1etdt&ThinSpace;. \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.

    你可以找到更多关于的信息 LaTeX 数学表达式here.

    新的甘特图功能,丰富你的文章

    Mon 06Mon 13Mon 20已完成 进行中 计划一 计划二 现有任务Adding GANTT diagram functionality to mermaid
    • 关于 甘特图 语法,参考 这儿,

    UML 图表

    可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

    张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间,文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

    这将产生一个流程图。:

    链接
    长方形
    圆角长方形
    菱形
    • 关于 Mermaid 语法,参考 这儿,

    FLowchart流程图

    我们依旧会支持flowchart的流程图:

    Created with Raphaël 2.2.0开始我的操作确认?结束yesno
    • 关于 Flowchart流程图 语法,参考 这儿.

    导出与导入

    导出

    如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

    导入

    如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
    继续你的创作。


    1. 注脚的解释 ↩︎

    展开全文
  • //反转字符串 char *reverse(char *s) { char temp; char *p = s; //p指向s的头部 char *q = s; //q指向s的尾部 while(*q) ++q; q--; //交换移动指针,直到p和q交叉 while(q > p) {
    //反转字符串
    char *reverse(char *s)
    {
        char temp;
        char *p = s;    //p指向s的头部
        char *q = s;    //q指向s的尾部
        while(*q)
            ++q;
        q--;
        
        //交换移动指针,直到p和q交叉
        while(q > p)
        {
            temp = *p;
            *p++ = *q;
            *q-- = temp;
        }
        return s;
    }
    
    /*
     * 功能:整数转换为字符串
     * char s[] 的作用是存储整数的每一位
     */
    char *my_itoa(int n)
    {
        int i = 0,isNegative = 0;
        static char s[100];      //必须为static变量,或者是全局变量
        if((isNegative = n) < 0) //如果是负数,先转为正数
        {
            n = -n;
        }
        do      //从各位开始变为字符,直到最高位,最后应该反转
        {
            s[i++] = n%10 + '0';
            n = n/10;
        }while(n > 0);
        
        if(isNegative < 0)   //如果是负数,补上负号
        {
            s[i++] = '-';
        }
        s[i] = '\0';    //最后加上字符串结束符
        return reverse(s);
    }
    
    int main(int argc, const char * argv[]) {
        
        char *string = my_itoa(12700);
        printf("string:%s<%d>\r\n",string,strlen(string));
        return 0;
    }

    展开全文
  • 我尝试了好几种网上推荐的方法。 1.用sprintf 2.用itoa; 3.用子函数然后调用。 我都尝试过,发现全都不管用。 最后我选择转化一个,发送一个,方法可行。 代码如下: SBUF = num/1000+‘0’;...while...
  • 单片机中C语言字符串转换

    千次阅读 2018-07-19 10:03:02
    字符串转int atoi 函数原型int atoi(const char *nptr); int val = atoi("12"); 这样va就l等于12 int转字符串 itoa 函数原型:char*itoa(intvalue,char*string,intradix); int number=123456; char ...
  • 单片机的开发中经常遇见过要在OLED或1602等中显示一些数字,但在程序中计算的是整形数据,需要把整形数据转换为字符型的数组才能显示。因此下面提供一种方法给大家参考,当然也有其他的方法 void Init_To_String...
  • 单片机浮点数转字符串可以使用 stdio.h 中sprintf函数,但代码体积和RAM占用空间比较大。自己写的程序又不太好。在学习GPS数据解析过程中用到了LeiOuYang的GPS解析库,在其中有浮点数转字符串函数,现推荐给大家。 ...
  • 在进行单片机编码过程中用到过的一个转换方法,在此记录一下,方便以后使用,只能是转成十六进制是 两个 字节的数字,即 可的范围0<n<256 可修改 u8->u16,转换更高范围 u8 temp; u8 tempHexstr[3]; void...
  • 一:数字转换为字符串 (1)itoa():将整型值转换为字符串 (2)ltoa():将长整型值转换为字符串 (3)ultoa():将无符号长整型值转换为字符串 ...还可以使用sprintf系列函数把数字转换成字符串,这种方
  • c语言的itoa:char *m_itoa(int n) 整数转换为字符串。char *m_itoh(unsigned int num, int length, int prefix)整数转换为0x十六进制字符串。num: 要转换的数字,无视符号。length:指定字节长度,一字节为2个十六进制...
  • 51单片机串口通信(字符串接收和发送)

    万次阅读 多人点赞 2016-10-12 19:10:25
    自:http://www.cnblogs.com/weifeng727/category/845655.html #include //------------------串口通信协议-----------------// /* 客户端数据包格式解释(长度恒为15): 例如:A01_fmq_01Off___# A--------...
  • 但对于“寸土寸金”的单片机来说,问题可没那么简单。 看看我代码中这句弃之不用的代码吧: //sprintf(sFileLen,"%d",fileLen*128);print(sFileLen); //使用这个库函数,体积一下增加2563. 我的程序空间马上溢出...
  • STM32将字符串转化为数字

    千次阅读 2017-05-16 10:30:02
    STM32将字符串转化为数字,例如将字符串*str="123";转化为实际的10进制数123
  • 单片机中unsigned char转字符串的方法

    千次阅读 2005-04-25 09:25:00
    单片机中,常用到数字与字符的方法,在C中都是使用...当需要转换成字符串时用itoa的话,还是有点浪费。还是自力更生,自己写了一个,代码如下: typedef unsigned char BYTE;BYTE * ByteToStr(BYTE n){ BYTE str[4];
  • 将16进制的数据改为字符串,也就是0xAB,改成“AB”。。。虽然看上去没什么用。
  • 本文总结了一些常用的js数据转换,包括:数值转换成字符串字符串转换数值以及常用的字符串处理。 一、数值转换成字符串方法一:给数值添加一个空的字符串即可: var n = 100 var n_as_string = n + ''方法二: ...
  • 工程是keil2. 简单的利用C51单片机,实现了printf函数输出字符串数字等。 找了好多资料,然后自己总结了下,实现了printf函数的应用。 有了printf函数,你就可以像VC中一样实现输出了。
  • 51单片机动态数码管显示(新字符串思路) 新思路 对于数码管的动态显示,已经有了很多的基础教学,教学中多用数组的形式储存数据来进行动态显示,便于理解。对于纯数据来说,数组是一个很好的选择,但是如果有的特殊...
  • 但是这样会导致内存的过量占用,在小容量的51单片机中或者DSP中会占用不小的内存,为接下来的开发带来难度,现在提供一个函数,可以直接调用将整数、浮点数转换成字符串。 1.整数转换成字符串 //整数转换成字符...
1 2 3 4 5 ... 20
收藏数 6,040
精华内容 2,416
关键字:

单片机 数字转成字符串