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