字符转换为数字,以|分割
来源:互联网 发布:网络里沙发是什么意思 编辑:程序博客网 时间:2024/05/21 21:38
#include <stdio.h>#include <stdlib.h>#define INT_MAX ((1<<31)-1)#define INT_MIN (1<<31)#define isRight(x) (x==' ' || x=='+' || x=='-' || (x>='0'&&x<='9'))int getNum(char* s, int begin, int end){ int flag = 1; int num = 0; while (begin<=end && s[begin] == ' ') begin++; if (s[begin] == '-') { flag = -1; begin++; } if (s[begin] == '+') begin++; while (begin<=end) { if (s[begin]<'0' || s[end]>'9') { return 0; } if (num>INT_MAX/10 || (INT_MAX==INT_MAX/10 && (s[begin]-'0')>INT_MAX%10)) return (flag==-1) ? INT_MIN : INT_MAX; num = num*10+s[begin]-'0'; begin++; } return num*flag;}/*以|分隔符的数值转换 一面*/void strToNum(char* s){ int a[20]; int i = 0; int begin; int end; int count = 0; if (s == NULL) return; while (s[i]!='\0' && s[i]=='|') i++; while (s[i] != '\0') { begin = i; while (s[i]!='\0' && s[i]!='|' && isRight(s[i])) { i++; } if (s[i]=='\0' || s[i]=='|') { end = i-1; a[count++] = getNum(s, begin, end); printf("a[%d] %d\n", count-1, a[count-1]); } else { while (s[i]!='\0' && s[i]!='|') { i++; } if (s[i] == '\0') return; } i++; }}int main(){ char s[] = "111111|-123213|dsafd| adf | -123123213213123|adaew|12334243243243"; strToNum(s); //printf("max int %d, min int %d\n", INT_MAX, INT_MIN); return 0;}
0 0
- 字符转换为数字,以|分割
- json 转化为数字,字符分割
- 数字字符转换为整数
- 任意字符转换为数字
- 数字字符转换为整数
- sql 数字转换为字符
- 将字符数字转换为整型数字
- java转换数字以万为单位
- 全角字符数字转换为半角字符数字
- 将数字1234转换为字符1234
- 字符转换为数字的方法
- 字符转换为16进制数字
- 16进制数字转换为字符
- c/c++ 字符转换为数字
- 连续输入数字,以空格为分割,换行为结束,将数字输入到数组中
- Java中数字转换为字符串,字符串转换为字符
- 3.7 编写一个程序,以字符形式输入某进制的数字,将其转换为十进制数值并显示出
- C++分割字符串(以逗号分隔符为例,分割得到相应数字)
- MySQL实现差集(Minus)和交集(Intersect)
- 【Hibernate】Hibernate入门2-简单的增删改查源码
- KVC中对对象的属性赋值的顺序
- linux新的API signalfd、timerfd、eventfd使用说明
- 编写可维护的JavaScript(一)
- 字符转换为数字,以|分割
- Sketch教程
- Android Keep screen on(保持屏幕唤醒)
- 解决跨浏览器问题
- 树莓派笔记
- javascript 一句话理解回调函数
- 用 HTML5 和CSS3 征服表单
- 一大波问题解决和配置备份 WCF快炼成精了
- bzoj2216: [Poi2011]Lightning Conductor 决策单调性