1、将一串数字字符串转换为相应的整型数,即字符串转换为整型数,atoi函数写法:
atoi函数的写法,将一数字字符串转换为相应的整数,程序如下:
#include<stdio.h>
int atoi(char *s)
{
int n=0,i;
for(i=0;s[i]>='0'&&s[i]<='9';i++)
n=n*10+s[i]-'0';//将字符串转换为整型数字
return n;
}
main()//主函数测试atoi函数
{ char s[10]="263";
printf("%d/n",atoi(s));
}
atoi函数的写法,将一数字字符串转换为相应的整数,可以对空白符,加减号进行检查,程序如下:
#include<stdio.h>
int atoi(char s[])
{
int n=0,i,sign;
for(i=0;s[i]==' '||s[i]=='/n'||s[i]=='/t';i++)//跳过空白符
;
sign=(s[i]=='-')?-1:1;//保存数值的符号位
if(s[i]=='-'||s[i]=='+')
i++;
for(n=0;s[i]>='0'&&s[i]<='9';i++)
n=10*n+s[i]-'0';//将字符串转换为整型数字
return sign*n;//返回整数值
}
main()//主函数测试atoi函数
{
char s[]=" -263";
printf("%d/n",atoi(s));
}
2、将整数转化为字符串数(itoa函数的功能)
将整型数字n转换为字符串保存到s中:
#include<stdio.h>
void itoa(char s[],int n)
{
int c,j=0,i=0;
while(n)//反序生成数字,可自己取个数字测试,如123,反序字符数组中的值为321
{
s[i++]=n%10+'0';//将转换后的数字字符存放在字符数组中
n=n/10;//删除已经转换的数字,为取下一个数字做好准备
}
s[i--]='/0';//转换完后还需要在字符数组后面加一个字符串结束标志'/0',代表是一个字符串
while(j<i)//刚刚转换好的字符串是逆序的必须把它反转过来
{
c=s[j];
s[j]=s[i];
s[i]=c;
i--,j++;
}
}
main()//主函数测试itoa函数
{
char s[20];
itoa(s,13579);
printf("%s/n",s);
}
第二种方法:
#include<stdio.h>
void itoa(char s[],int n)
{
int j=0,i=0;
char str[20];
while(n)//反序生成数字,可自己取个数字测试,如123,反序字符数组中的值为321
{
str[i++]=n%10+'0';//取一个字符
n=n/10;
}
str[i--]='/0';
while(i>=0)//把生成的逆序字符串反转过来
s[j++]=str[i--];
s[j]='/0';
}
main()//主函数测试itoa函数
{
char s[20];
itoa(s,13579);
printf("%s/n",s);
}