int位数的获取及int类型转char *

C语言获取int位数:

int intlen(int num)
{
/*
参数:要获取长度的int类型数据
返回值:返回长度
*/
  int tmpn=num;
  int len=1;
  while(tmpn/=10)
    len++;
  return len;
}

C语言int类型转char *类型:

void intostr(char *dest,int num,int intlen)
{
/*
参数:
  dest---将int转换为char *后的存储位置
  num---要转换的int类型值
  intlen---int类型长度
*/
  int tmpn2=num;
  char tmpc[intlen+1];
  int i=intlen-1;
  tmpc[intlen]='\0';
  while(tmpn2)
  {
    tmpc[i]=48+(tmpn2%10);
    if(!(tmpn2/=10))
    tmpc[i-1]=40+tmpn2;
    i--;
  }
  memcpy(dest,tmpc,sizeof(tmpc));
}

例:

/////////////////////////////////////////////////////////////////////////////////////////////////////

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

int intlen(int num)
{
  int tmpn=num;
  int len=1;
  while(tmpn/=10)
  len++;
  return len;
}

void intostr(char *dest,int num,int intlen)
{
  int tmpn2=num;
  char tmpc[intlen+1];
  int i=intlen-1;
  tmpc[intlen]='\0';
  while(tmpn2)
  {
    tmpc[i]=48+(tmpn2%10);
    if(!(tmpn2/=10))
    tmpc[i-1]=40+tmpn2;
    i--;
  }
  memcpy(dest,tmpc,sizeof(tmpc));
}

int main()
{
  int num=1234567;
  char str[intlen(num)+1];
  intostr(str,num,intlen(num));
  printf("%s\n",str);
  return 0;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////

posted @ 2017-08-14 17:45  第五  阅读(1132)  评论(0编辑  收藏  举报