自写atoi----字符串转化为整形
来源:互联网 发布:简单编程教程 编辑:程序博客网 时间:2024/05/11 00:03
字符串转化为整形的各类情况:
char *str1 = "12345"; //普通
char *str2 = "+12345"; //正数
char *str3 = "-12345"; //负数
char *str4 = " 12345"; //前面有若干个空格
char *str5 = " 1 2 3 4 5"; //数字间存在空格
char *str6 = "0x12345"; //十六进制
char *str7 = "012345"; //八进制
char *str8 = "abc123"; //含其他字符
char *str3 = "-12345"; //负数
char *str4 = " 12345"; //前面有若干个空格
char *str5 = " 1 2 3 4 5"; //数字间存在空格
char *str6 = "0x12345"; //十六进制
char *str7 = "012345"; //八进制
char *str8 = "abc123"; //含其他字符
代码如下:
#include<stdio.h>int my_atoi(const char *str){int result = 0; //存放转换后的值int sign = 1; //符号位int weight = 10; //权值(十进制,八进制,十六进制)while(*str != '\0'){if(*str == '+') //表明是正数{sign = 1;str++; //将'+'掠过}if(*str == '-') //表明是负数{sign = -1;str++; //将'-'掠过 }/*if(*str == '0' && *(++str) != 'x'){weight = 8; //注意!!!!!:此处不能加str++,否则会错失一个字符//str++; 因为执行完*(++str) != 'x'后,str已经指向一个未完全判断的字符(虽然不等于x)}if(*str == '0' && *(++str) == 'x')//表明是16进制{weight = 16;str++; //将'x'掠过}*/if(*str == '0'){if(*(str + 1) == 'x'){ weight = 16;str += 2; //将'0'和'x'掠过}else{weight = 8;str += 1; //将'0'掠过}}if(*str >= '0' && *str <= '9'){result = result * weight + (*str - '0');str++;}else{str++;//非有效字符全部掠过(+ - 0x x exp)}}return result * sign;}int main(){char *str1 = "12345"; //普通char *str2 = "+12345"; //正数char *str3 = "-12345"; //负数char *str4 = " 12345"; //前面有若干个空格char *str5 = " 1 2 3 4 5";//数字间存在空格char *str6 = "0x12345"; //十六进制char *str7 = "012345"; //八进制char *str8 = "abc123";printf("%6d\n",my_atoi(str1));printf("%6d\n",my_atoi(str2));printf("%6d\n",my_atoi(str3));printf("%6d\n",my_atoi(str4));printf("%6d\n",my_atoi(str5));printf("%6d\n",my_atoi(str6));printf("%6d\n",my_atoi(str7));printf("%6d\n",my_atoi(str8));return 0;}
0 0
- 自写atoi----字符串转化为整形
- c++-字符串转化为整形(atoi)
- 将整形转化为字符串
- java十六进制字符串 转化为整形
- 剑指offer:将字符串转化为整形
- 把无符号整形字符串转化为整形
- 字符串转整形 atoi
- 将一个整形数据转化为对应的字符串如1234 -> "1234"(可以用库函数,也可以写算法)
- 字符串转化成整形
- 把一个十六制的字符串转化为整形
- 字符串转化为整形(面试题 49)
- 将一个“1234”的字符串转化为1234整形
- 字符串转化atoi、atof
- C语言的字符串转化为整型:atoi
- 字符串转为整形 ATOI (including overflow process)
- 自我实现atoi(字符串转整形)
- 整形转换为字符串
- [Algorithms, C] long2char: 自己用C写来玩玩的整形转化为字符串函数 (递归和迭代两种实现): void long2char(long from, char *to, int n);
- Oracle10g下载地址--多平台下的32位和64位
- 提高网站性能的策略(一个大三学生原创)
- TCP连接的开启和终止
- ios 代码细节问题
- Linux设备驱动概论
- 自写atoi----字符串转化为整形
- 机器人软件开发平台
- GMM聚类算法的实现
- 笔记本电脑(没有num按键)如何关闭数字小键盘
- 用C#简单的实现双色球抽奖
- 建立表空间和用户
- 动态规划——矩阵连乘
- mui ajax get 数据
- Android SQLite数据库之一,使用sql语句操作SQLite数据库