C语言如何实现将字符串转换成整数

其他教程   发布日期:前天 15:01   浏览次数:112

本文小编为大家详细介绍“C语言如何实现将字符串转换成整数”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现将字符串转换成整数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

这是一个很有意思的问题。请不要把这个问题想的太简单了,考虑问题时应该尽可能的全面一些。请先思考并且实现这个函数,再来看讲解。

分析一下:函数名是StrToInt,那么可以这么调用:

  1. int ret = StrToInt("1234");
  2. printf("%d
  3. ", ret);

如果你写的程序能够正确输出1234,然后就觉得这道题就这样了,那么考虑的就不够全面。有没有一种可能:

1.传参时传了NULL指针。

2.传入空字符串。

3.字符串前面有空格,如:" 1234"。

4.有正负号,如:“-1234”。

5.有非法字符,如:“1234abcd”。

6.数字太大了,超出了int的存储范围,如:“1111111111111111111111111111111111111”。

下面我们一个一个解决。

准备工作

由于有可能出现非法字符,或者空字符串等,会有一些情况的转换是非法的。所以,定义一个全局性质的枚举类型来检验转换是否合法:

  1. enum State
  2. {
  3. VALID,
  4. INVALID
  5. }s = INVALID;

默认的情况是非法的,只有转换成功才会把s的值置为VALID。

先把函数的框架

以上就是C语言如何实现将字符串转换成整数的详细内容,更多关于C语言如何实现将字符串转换成整数的资料请关注九品源码其它相关文章!