自定义数字和字符串的转换函数

C语言中,常见的字符串与数字之间的相互转换的库函数有:atof(字符串转换成浮点数)、atoi(字符串转换成整型数)、atol(字符串转换成长整形数)、itoa(整型数转换成字符串)、ltoa(长整型数转换成字符串)等。在求职中,让求职者自定义此类函数的实现是为了考察求职者对基本功的掌握。
下面给出两个示例:

#include<stdio.h>

int Myatoi(char *str)
{
      if(str==NULL)
      {
            printf("invalid input");
            return -1;
      }
      while(*str=='')
      {
            str++;
      }
      while((*str==(char)0xA1)&&(*(str+1)==(char)0xA1))//0xA1是汉字开始的编码
      {
            str+=2;
      }
      int nSign=(*str=='-')?-1:1;
      if(*str=='+'||*str=='-')
      {
            str++;
      }
      int nResult=0;
      while(*str>='0'&&*str<='9')
      {
            nResult=nResult*10+(*str-'0');
            str++;
      }
      return nResult*nSign;
}

int main()
{
      printf("%d\n",Myatoi("12345");
      return 0;
}
//程序输出结果
//12345
#include<stdio.h>

char* Myitoa(int num)
{
      char str[1024];
      int sign=num,i=0,j=0;
      char temp[11];
      if(sign<0)
      {
            num=-num;
      };
      do
      { 
            temp[i]=num%10+'0';
            num/=10;
            i++;
      }while(num>0);
      if(sign<0)
      {
            temp[i++]='-';
      }
      temp[i]='\0';
      i--;
      while(i>=0)
      {
            str[j]=temp[i];
            j++;
            i--;
      }
      str[j]='\0';
      return str;
}

int main()
{
      printf("%d\n",Myitoa(-12345));
      return 0;
}
//程序输出结果:
//-12345


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值