int atoi(const char * str);
函数说明参考:
http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/
功能:将str里整数字符,翻成整数
该函数:1:忽略开始的空白字符串,知道非空白的字符开始转换
2:处理正负+ - 字符
3:如果字符串为空,或者字符串里首字符不为数字或者正负号,不做转换
Return Value
On success, the function returns the converted integral number as an int value.If no valid conversion could be performed, a zero value is returned.
If the correct value is out of the range of representable values, INT_MAX or INT_MIN is returned.
#include <stdio.h>
#include <iostream>
#define MIN_INT (-2147483648)
#define MIN_INT (2147483647)
using namespace std;
//转换,没有进行最大值检查
int myatoi(const char* str)
{
int sign = 1;
if (!str)return 0;
int intvalue = 0;
while (*str ==' ')str++;//找到第一个非空白字符
if (*str == '-')//检查+-号
{
sign = -1;
str++;
}
else if (*str == '+')
{
sign = 1;
str++;
}
while(*str!='\n')
{
if (*str <='9'&&*str>='0')//是否为数字
{
intvalue = 10*intvalue + *str - '0';
str++;
}
else break;
}
return intvalue*sign;
}
int main()
{
char *s = "12345 6s78";
char *s1 = " 3245609ac34";
char *s2 = "s145553290";
int m = atoi(s);
int mym = myatoi(s);
int m1 = atoi(s1);
int mym1 = myatoi(s1);
int m2 = atoi(s2);
int mym2 = atoi(s2);
cout<<m<<":"<<mym<<"&&"<<m1<<":"<<mym1<<"&&"<<m2<<":"<<mym2<<endl;
system("pause");
return 0;
}