本文小编为大家详细介绍“C语言如何实现将字符串转换成整数”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现将字符串转换成整数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
这是一个很有意思的问题。请不要把这个问题想的太简单了,考虑问题时应该尽可能的全面一些。请先思考并且实现这个函数,再来看讲解。
分析一下:函数名是StrToInt,那么可以这么调用:
int ret = StrToInt("1234");
printf("%d
", ret);
如果你写的程序能够正确输出1234,然后就觉得这道题就这样了,那么考虑的就不够全面。有没有一种可能:
1.传参时传了NULL指针。
2.传入空字符串。
3.字符串前面有空格,如:" 1234"。
4.有正负号,如:“-1234”。
5.有非法字符,如:“1234abcd”。
6.数字太大了,超出了int的存储范围,如:“1111111111111111111111111111111111111”。
下面我们一个一个解决。
准备工作
由于有可能出现非法字符,或者空字符串等,会有一些情况的转换是非法的。所以,定义一个全局性质的枚举类型来检验转换是否合法:
enum State
{
VALID,
INVALID
}s = INVALID;
默认的情况是非法的,只有转换成功才会把s的值置为VALID。
先把函数的框架
版权声明:除特别声明外,本站所有文章皆是本站原创,转载请以超链接形式注明出处!