整数装换为字符串intToArray与字符串转为整数 arrayToInt实现

7.  整数装换为字符串itoa的实现

 1 char *intToArray(int number, char *str)
 2 {
 3     if(str == NULL)
 4     {
 5         return NULL;
 6     }
 7     char *ret = str;
 8     char *left = str;
 9     char temp = ‘\0‘;
10     // 负数的处理
11     if(number < 0)
12     {
13         number = -number;
14         *ret++ = ‘-‘;
15         left++;
16     }
17     // 辗转对10求余法 分离各个位的数字
18     while (number > 0)
19     {
20         *ret++ = number%10 + ‘0‘; // 将数字转化为ascall码
21         number = number/10;
22     }
23     *ret = ‘\0‘;
24     ret--;
25
26     /* 逆序 */
27     while (ret > left)
28     {
29         temp = *left;
30         *left++ = *ret;
31         *ret-- = temp;
32     }
33     return str;
34 }

字符串转为整数 arrayToInt

需考虑字符串是负数、是否包含字母,及转换后的数字是否溢出等情况,包含字母的处理 -123asd455 则为-123,asd122作为0处理。

 1 int arrayToInt(char *str)
 2 {
 3
 4     /* 思路: 逐一遍历字符串 为空 或者 为字符就结束遍历 取出的字符逐一*10*/
 5     long long val = 0;
 6     int flag = 0;
 7     char *src = str;
 8     bool minus = false;
 9     /* 安全性 */
10     if(str == NULL)
11     {
12         return 0;
13     }
14     // 处理正负符号的情况 无论正负都占一个位使指针加一
15     if(*src == ‘-‘)
16     {
17         src++;
18         minus = true;
19     }
20     else if (*src == ‘+‘)
21     {
22         src++;
23     }
24
25     while ((*src != ‘\0‘) && ((*src - ‘0‘ >= 0) && (*src - ‘0‘ <= 9)))
26     {
27         //逐位乘以10
28         flag = minus ? -1:1;
29         val = val * 10 + flag*(*src - ‘0‘);
30         /* 处理溢出问题:int最大值0x7FFFFFFF 最小值80000000 */
31         if(((minus) && (val > 0x7FFFFFFF)) ||
32            ((!minus) && (val < (signed int)0x80000000)))
33         {
34             val = 0;
35             break;
36         }
37         src++;
38     }
39     printf("val= %d",(int)val*flag);
40     return (int)val;
41 }
42  
时间: 2024-11-06 21:50:03

整数装换为字符串intToArray与字符串转为整数 arrayToInt实现的相关文章

将整数n这个数字转换为对应的字符串

题目:实现一个函数itoa(int n,char s[]),将整数n这个数字转换为对应的字符串,保存到s中. 题目分析: 对于这一个问题,我们首先能够联想到字符在计算机存储是以自身的ASCII码存储的,例如:'0'存储为48,'1'存储为49,那么如果给'0'-'9'这些字符相应的减去'0',刚好对应的是数字的0-9:这是我们做这个题目的前提. 同时,可以定义一个数组,将转换好的数字先保存下来,这时会发现数组中保存的数字与我们期望得到的数字顺序相反,这时可以考虑数组元素的逆置.将这些问题解决了,

[LeetCode] String to Integer (atoi) 字符串转为整数

Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases. Notes: It is intended for this problem to be spe

sql server 之函数小技巧 &amp;&amp; 整数类型为空是用空字符串替代实现

1.判空函数 说明:使用指定的替换值替换 NULL. 语法:ISNULL ( check_expression , replacement_value ) 参数: check_expression:将被检查是否为 NULL 的表达式.check_expression 可以为任何类型. replacement_value:当 check_expression 为 NULL 时要返回的表达式.replacement_value 必须是可以隐式转换为 check_expresssion 类型的类型.

实现一个函数itoa(int n, char s[]),将整数n这个数字转换为对应的字符串,保存到s中。

实现一个函数itoa(int n, char s[]),将整数n这个数字转换为对应的字符串,保存到s中. #include <stdio.h> void reverse(char *left, char *right){ while (left < right) {  char tmp = *left;  *left = *right;  *right = tmp;  left++;  right--; }} void my_itoa(int n, char s[]){ char *st

LeetCode刷题-008字符串转为整数

实现 atoi,将字符串转为整数.在找到第一个非空字符之前,需要移除掉字符串中的空格字符.如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值.如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数.字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响.当字符串中的第一个非空字符序列不是个有效的整数:或字符串为空:或字符串仅包含空白字符时,则不进行转换.若函数不能执行有效的转换,返回 0

Leetcode篇:字符串转为整数

@author: ZZQ @software: PyCharm @file: myAtoi.py @time: 2018/9/20 20:54 要求:实现 atoi,将字符串转为整数. 1)根据需要丢弃任意多的空格字符,直到找到第一个非空格字符为止 2)如果第一个非空字符是正号或负号,选取该符号: 3) 将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值. 4) 如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数. 5) 字符串可以在形成整数的字符后面包括多余

shell编程系列4--有类型变量:字符串、只读类型、整数、数组

shell编程系列4--有类型变量:字符串.只读类型.整数.数组 有类型变量总结: declare命令和typeset命令两者等价 declare.typeset命令都是用来定义变量类型的 declare命令参数总结 1.declare -r 将变量设置为只读类型 declare -r var="hello" var="world" # 变量默认可以修改 [[email protected] shell]# var2="hello world"

进制装换

[一些常识] integer == int 整数decimal == 十进制数的binary == bin 二进制octal = oct 八进制hexadecimal == hex 十六进制 %d 整数%f 浮点%s 字符串%x 十六进制数%o 八制数 在shell脚本中的进制转换 #转换成十进制printf "%d\n" 11printf "%d\n" \"a\"#保留一位小数printf "%0.1f\n" 11#转换成八

DataSet装换为泛型集合 222

#region DataSet装换为泛型集合 /// <summary> /// 利用反射和泛型 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static List<T> ConvertToList<T>(DataTable dt) { // 定义集合 List<T> ts