#include <string>
#include <iostream>
using namespace std;
long long CharToInt(char *str);
int g_valid;
enum Valid_str
{
Valid=0,
Invalid
};
int main()
{
char *ch="-1232324324324";
long long num=CharToInt(ch);
system("pause");
return 0;
}
long long CharToInt(char *str)
{
int m;//用于判定正负
int i=0;
long long num=0;
g_valid=Invalid;
if (str==NULL)
{
g_valid=Invalid;
}
//判定前面有没有正负标示符
if (str[i]=='+')
{
m=1;
i++;
}
else if(str[i]=='-')
{
m=0;
i++;
}
else
{
m=1;
}
//转换过程
while (1)
{
if(str[i]=='\0')
{
break;
}
else if (str[i]>'9' || str[i]<'0')
{
num=0;
g_valid=Invalid;
break;
}
else if (str[i]!='\0')
{
num=num*10+str[i]-'0';
i++;
}
//判断是不是越界
if(num>std::numeric_limits<long long>::max())
{
num=0;
g_valid=Invalid;
break;
}
}
//正负的输出
if (!m)
{
num=0-num;
}
return num;
}
把字符串转换成整数[算法]
最新推荐文章于 2020-06-06 14:52:00 发布