工作中突然突然有需求把一个表示11位数字的字符串转为整型,在此记录下:
需要用到长整型 long long (int64)来保存转换后的数据,否则会出现溢出导致转换出错。
//
long long str2int64(char *str)
{
int i = 0;
long long n = 0;
int flag = 1;
if(str[0] == '-')
{
i = 1;
flag = -1;
}
for(; str[i] != '\0' ; i++)
{
assert(str[i] >= '0' && str[i] <= '9');
//循环转换
n = str[i] - '0' + n*10;
}
return n*flag;
}