一.问题
1. 编写函数,将数字字符串转换成数字。
2.注意事项:
- 整型数可以存在符号位;
- 字符串可能不合法。
二.解决思路
先思考两个问题:
1.如何处理非数字字符?
2.如何将数字字符转换为数字?
再画出流程图:
三.代码
#include <stdio.h>
int getNumber(char c)
{
int ret = -1;
if(('0' <= c) && (c <= '9'))
ret = c - '0';
return ret;
}
int str2int(char str[])
{
int ret =0;
int sign = 0;
int i = 0;
if (getNumber(str[0]) > -1) {
sign = 1;
i = 0;
} else if (str[0] == '+') {
sign = 1;
i = 1;
} else if (str[0] == '-') {
sign = -1;
i = 1;
}
while (str[i] != 0) {
int n = getNumber(str[i]);
if (n > -1)
ret = ret * 10 + n;
i++;
}
ret = sign * ret;
return ret;
}
int main()
{
printf("%d\n", str2int("-cvbb"));
return 0;
}
四.总结
1.提高解决问题时的思维