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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
}

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

以上是关于int位数的获取及int类型转char *的主要内容,如果未能解决你的问题,请参考以下文章

Java基础 - 基本数据类型及包装类

C语言 int转char

byte和int,char类型有啥区别

char *怎样转成int

java中int怎样转换成char

C++中如何将int或者char转化为string类