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

寻技术 C/C++编程 2023年10月07日 91

本文小编为大家详细介绍“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。

先把函数的框架

关闭

用微信“扫一扫”