字符串与整型数的相互类型转化-atoi和itoa的简单写法~

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);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值