打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
字符串转换为整型

题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。
         例如输入字符串”-345”,则输出整数-345;

分析:此题看起来,比较简单,每扫描到一个字符,我们把在之前得到的数字乘以10再加上当前字符表示的数字。这个思路用循环不难实现。但是此题很容易出错,有几个地方需要注意一下。

几个需要注意的地方:

1、由于整数可能不仅仅之含有数字,还有可能以'+'或者'-'开头,表示整数的正负。如果第一个字符是'+'号,则不需要做任何操作;如果第一个字符是'-'号,则表明这个整数是个负数,在最后的时候我们要把得到的数值变成负数。
2、如果使用的是指针的话,在使用指针之前,我们要做的第一件是判断这个指针是不是为空。如果试着去访问空指针,将不可避免地导致程序崩溃。
3、输入的字符串中可能含有不是数字的字符。每当碰到这些非法的字符,我们就没有必要再继续转换。
4、溢出问题。由于输入的数字是以字符串的形式输入,因此有可能输入一个很大的数字转换之后会超过能够表示的最大的整数而溢出。

代码:

 

 1 #include <iostream.h> 2 #include <string> 3 #include <stdlib.h> 4 using namespace std; 5  6  7 int str2Int(string str) 8 { 9     if (str.size()==0)10     {11         exit(0); //终止程序12     }13     int pos=0,num=0;14     int sign=1;15     if (str[0]=='-')16     {17         pos++;18         sign=-1;19     }20     else if (str[0]=='+')21     {22         pos++;23     }24     while (pos<str.length())25     {26         if (str[pos]<'0' || str[pos]>'9')27         {28             exit(0);29         }30         num=num*10+(str[pos]-'0');31         if (num<0)32         {33             exit(0);34         }35         pos++;36     }37 38     return sign*num;39 40 }41 42 43 void main()44 {45     string str="23456d";46     int result=str2Int(str);47     cout<<result<<endl;48 }

 

 

     

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
字符串转换整数及整数转换字符串
转: std::string用法详解
C语言字符串,字符转数字,数字转字符(转)
2015年华为校招机试题和代码实现(分解字符串,拼音转数字,去除重复字符并排序,等式变换)
C语言编程时,各种类型的变量该如何初始化?
深入理解C语言
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服