登录名:  密码:  验证码: 6708
设为首页 收藏本站 联系站长
2008年10月15日
农历戊子年(鼠)
九月十七
 首页 | 最新上传 | 新闻 | 购物商场 | 招聘求职 | HTML学习 | java学习 | IT新闻 | 黑客技术 | 域名和空间 | 流量统计 | 故事小说
 GIF动画制作 | 图片素材 | 源码下载 | 书籍下载 | 视频资料 | ASP | 数据库 | PHP | 基本电脑知识 | 迅雷资源 | 兼职 | 组网工程
 英语学习 | FLASH专区 | ASP.NET | VB | 综合资源网 | 驱动下载 | 游戏下载 | 网站模板网页美工 | 韩文学习 | 论坛
 特别推荐:产品报价  漂亮网站网址  图片素材
  我要查找:  
欢迎您来这里。每天学一点,每天进步一点!
Google
 当前位置:首页 >> C语言  >> C语言
数字字符串转换成整数
来源:  发表日期:2008年5月8日 作者: 

 编辑:admin 级别: 司令 浏览次数:104
】    
题目: 请编写一个 C 函数,该函数将给定的一个字符串转换成整数。
【本程序在Dev C++ 4.9.9.2 下编译通过】
下面的程序仅仅是考虑十进制字符串。
int StrToInt(char * str)
{
   int value = 0;
   int sign = 1;
   if(*str == '-')
   {
      sign = -1;
      str++;
   }
   while(*str)
   {
      value = value * 10 + *str - '0';
      str++;
   }
   return sign*value;
}
int main()
{
   printf("Number = %d\n",StrToInt("1234567"));
   printf("Number = %d\n",StrToInt("-1234567"));
   printf("Number = %d\n",StrToInt("2147483647"));
   printf("Number = %d\n",StrToInt("-2147483647"));
   system("pause");
   return 0;
}
下面的程序考虑了八进制、十进制、十六进制的字符串。
int StrToInt(char * str)
{
   int value = 0;
   int sign = 1;
   int radix;
   if(*str == '-')
   {
      sign = -1;
      str++;
   }
   if(*str == '0' && (*(str+1) == 'x' || *(str+1) == 'X'))
   {
      radix = 16;
      str += 2;
   }
   else if(*str == '0')
   {
      radix = 8;
      str++;
   }
   else
      radix = 10;
   while(*str)
   {
      if(radix == 16)
      {
        if(*str >= '0' && *str <= '9')
           value = value * radix + *str - '0';
        else
           value = value * radix + (*str | 0x20) - 'a' + 10;
      }
      else
        value = value * radix + *str - '0';
      str++;
   }
   return sign*value;
}
int main()
{
   printf("Decimal string Translation!\n\n");
   printf("\"1234567\" = %d\n",StrToInt("1234567"));
   printf("\"-1234567\" = %d\n",StrToInt("-1234567"));
   printf("\"2147483647\" = %d\n",StrToInt("2147483647"));
   printf("\"-2147483647\" = %d\n",StrToInt("-2147483647"));
   printf("\nHex string Translation!\n\n");
   printf("\"0x200\" = %d\n",StrToInt("0x200"));
   printf("\"-0x200\" = %d\n",StrToInt("-0x200"));
   printf("\"0x7FFFFFFF\" = %d\n",StrToInt("0x7FFFFFFF"));
   printf("\"-0x7FFFFFFF\" = %d\n",StrToInt("-0x7FFFFFFF"));
   printf("\nOctal string Translation!\n\n");
   printf("\"0123\" = %d\n",StrToInt("0123"));
   printf("\"-0123\" = %d\n",StrToInt("-0123"));
   system("pause");
   return 0;
}
(编辑:网站学习网)
Google
 ·上一篇文章: 什么叫TVB剧,是怎么定义的
 ·下一篇文章: 谁能说明style.display=='*&
 该篇文章的评论
 暂无相关评论
 姓名:  邮箱:
 内容:
                
 相关文章
 · 用C语言编写二分法解方程
 · 数字字符串转换成整数
 最新上传文章
 · 中文域名争夺激烈 
 · .Asia域名超30万 收
 · Alexa.
 · vista英文正式版的SN序列
 · NTLDR is mis
 · 装电脑的基本步骤
 · 第一次怎样自己组装电脑
 · fireworks 8序列号
 · Macromedia Firewo
 · 企业邮局 给企业注
 · ARP病毒的解决措施

服务说明 | 关于网站 | 联系我们 | 友情链接
网站学习网欢迎您!
http://www.studywebgood.com
浙ICP备07030755号 
联系邮箱:shuizhilang@126.com 如本网站侵犯了您的版权,请马上通知我.