码迷,mamicode.com
首页 > 其他好文 > 详细

【LeetCode 8_字符串_实现】String to Integer (atoi)

时间:2015-07-08 18:12:09      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

 1 enum status{VALID = 0, INVALID};
 2 int g_status;
 3 
 4 long long SubStrToInt(const char* str, bool minus) 
 5 {
 6     long long num = 0;
 7     int flag = minus ? -1 : 1;
 8 
 9     while (*str != \0) {
10         if (*str >= 0 && *str <= 9) {
11             num = num * 10 + flag * (*str - 0);
12 
13             if ((!minus && num > 0x7FFFFFFF) 
14                 || (minus && num < (signed int)0x80000000)) {
15                 num = 0;
16                 break;
17             }
18             str++;
19         } else {
20             num = 0;
21             break;
22         }
23     }
24     if (*str == \0)
25         g_status = VALID;
26 
27     return num;
28 }
29 
30 int StrToInt(const char* str)
31 {
32     g_status = INVALID;
33     long long num = 0;
34     bool minus = false;
35 
36     if (str != NULL && *str != \0) {
37         if (*str == +) {
38             str++;
39         }
40         else if (*str == -) {
41             minus = true;
42             str++;
43         }
44 
45         if (*str != \0)
46             num = SubStrToInt(str, minus);
47     }
48     return (int)num;
49 }

需要考虑的几个方面:

1、输入的字符串表示正数、负数和0;

2、边界值,最大的正整数和最小的负整数;

3、输入字符串为NULL、空字符串、字符串中有非数字、字符串开始的一段有空格等。

【LeetCode 8_字符串_实现】String to Integer (atoi)

标签:

原文地址:http://www.cnblogs.com/mengwang024/p/4630668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!