输入:-123
输出:1 -123
enum Sta {valid = 1, ivalid};
Sta s = valid;
int str2num(string str)
{
int i = 0;
int flag = 1;
int res = 0;
if(str.length() == 0)
{
s = ivalid;
}
if(str[0] == '+')
{
i++;
}
else if(str[0] == '-')
{
flag = -1;
i++;
}
while(i < str.length())
{
if(str[i] >= '0' && str[i] <= '9')
{
res = res * 10 + str[i++] - '0';
}
else
{
s = ivalid;
break;
}
}
return flag * res;
}
int main()
{
string str;
cin>>str;
cout<<s<<" "<<str2num(str)<<endl;
return 0;
}
字符数组型
int char2int(char *p)
{
int n = 0;
while(*p && *p >= '0' && *p <= '9')
{
n = n * 10 + *p - '0';
p++;
}
return n;
}
int main()
{
char *p = "32";
cout<<char2int(p);
return 0;
}