题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。
例如输入字符串"345",则输出整数345。 分析:此题看起来,比较简单,每扫描到一个字符,我们把在之前得到的数字乘以10再加上当前字符表示的数字。这个思路用循环不难实现。有以下几点需要你注意:
例如输入字符串"345",则输出整数345。 分析:此题看起来,比较简单,每扫描到一个字符,我们把在之前得到的数字乘以10再加上当前字符表示的数字。这个思路用循环不难实现。有以下几点需要你注意:
由于整数可能不仅仅之含有数字,还有可能以'+'或者'-'开头,表示整数的正负。如果第一个字符是'+'号,则不需要做任何操作;如果第一个字符是'-'号,则表明这个整数是个负数,在最后的时候我们要把得到的数值变成负数。
#include <iostream>
using namespace std;
int str_2_int(char *str)
{
int flag=1;
int pos;
if(str[0]=='+')
{
flag=1;
pos=1;
}
else if(str[0]=='-')
{
flag=-1;
pos=1;
}
else
{
pos=0;
}
int num=0;
int temp=0;
while(pos<strlen(str))
{
if(str[pos]<'0'||str[pos]>'9')
{
exit(0) ;
}
temp=str[pos++]-'0';
num=num*10+temp;
}
num=num*flag;
return num;
}
int main(int argc, char *argv[])
{
char *str;
cin>>str;
int num=str_2_int(str);
cout<<num<<endl;
return 0;
}