leetcode String to Integer (atoi)
解题思路:开始有空格的话,直接++;开始的正负号做一个保存;数字逐位计,碰到非数字的情况,直接返回当前数值;碰到超过上下限的问题,直接返回对应的最大值和最小值
<pre>
这个好用??
<pre>
```
为什么不好用???
```
```
int myAuto(char *str)
{
int flag = 1; //保存符号
int res = 0;
int dig;
while (*str == ' ') str++;
if (*str == '-')
{
flag = -1;
str++;
}
else if (*str == '+')
{
str++;
}
while (*str)
{
if (*str<'0' || *str>'9')
return flag * res;
dig = *str - '0';
if (flag == 1 && res * 10 + dig > INT_MAX)
return INT_MAX;
else if (flag == -1 && -res * 10 - dig < INT_MIN)
return INT_MIN;
res = res * 10 + dig;
str++;
}
return flag * res;
}
```
c语言从键盘输入字符串到指针数组
```
char* str = (char*)malloc(sizeof(char) *100);
scanf("%s", str);
```
网友评论