将一个整数n转换成换成一个字符串。如将1234转换为"1234"。

 这类问题通常用递归就可以简单解决了,示例代码如下:
(一)递归形式
#include <stdio.h>
char* convert( char*, int );
int main(void)
{
    char a[30] = {0};
    convert(a, 12345);
    printf("%s", a);
    return 0;
}
char* convert( char *p, int x )
{
    if( x >= 10 ) p = convert( p, x / 10 );
    *p = '0' + x - x /10 * 10;
    return p + 1;
}
(二)非递归形式
#include <stdio.h>
#include <string.h>
int main()
{
    char s[10];
    int n,i=0;
    scanf("%d",&n);
    convert(s, n);
    strrev(s);
    puts(s);
    return 0;
}
char* convert( char *s, int n )
{
    while(n!=0)
    {
        s[i++]=n%10+'0';
        n/=10;
    }
    s[i]='/0';
strrev(s);//字符串反转
return s;
}

 

下面是在项目中用的一个,嵌入式的固件开发,因为不能用库函数,所有的要用到的库函数都是自己写

 

#define DigitToByte(n)    (char)(0x30|(n))

/*****************************************************************************#
* Function Name    : IntToString
* Describe    : convert int to string
* Return Value    : void
* Param:
* @  int nNum    [in] : the number to convert
* @  char* pStr  [out]: the string output cache
*****************************************************************************
*/
void IntToString(int nNum, char* pStr)
{
   
int sign, n, i;
    assert(pStr);
   
    n
= 0;

   
if ((sign = nNum) < 0)
    {
        nNum
= -nNum;
    }

   
do
    {
    pStr[n
++] = DigitToByte(nNum % 10);
    nNum
/= 10;
    }
   
while ( nNum );

   
if (sign < 0)
    {
        pStr[n
++] = '-';
    }
   
    pStr[n]
= '/0';

    i
= --n >> 1;
   
++i;

   
while ( i-- > 0 )
    {
    ivUInt8 t
= pStr[i];
    pStr[i]
= pStr[n - i];
    pStr[n
- i] = t;
     }
}

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值