#include <stdio.h>
#include <string.h>
#include <math.h>
int StrToInt(char *p)
{
int len = strlen(p);
int i = 0;
int flag = 0;
if (len == 0)
{
return -1;
}
if (p[0] == '-')
{
i = 1;
flag = 1;
}
int sum = 0;
for (;i < len; i++)
{
if (p[i] >= '0'&&p[i] <= '9')
{
sum = sum + float(p[i] - '0')*pow(10.0, len - i - 1);
}
else
{
return -1;
}
}
return flag>0 ? sum*-1 : sum;
//return sum;
}
int main()
{
char *a = "-14423";
int n = StrToInt(a);
printf("%d\n",n);
return 0;
#include <string.h>
#include <math.h>
int StrToInt(char *p)
{
int len = strlen(p);
int i = 0;
int flag = 0;
if (len == 0)
{
return -1;
}
if (p[0] == '-')
{
i = 1;
flag = 1;
}
int sum = 0;
for (;i < len; i++)
{
if (p[i] >= '0'&&p[i] <= '9')
{
sum = sum + float(p[i] - '0')*pow(10.0, len - i - 1);
}
else
{
return -1;
}
}
return flag>0 ? sum*-1 : sum;
//return sum;
}
int main()
{
char *a = "-14423";
int n = StrToInt(a);
printf("%d\n",n);
return 0;
}
哈哈,大神给我讲了好久才懂。