提取字符串中的数字,如''123" ,结果123,考虑各种情况
2014-03-26 16:34
218 查看
#include<stdio.h>#include<stdlib.h>//从这个例子就可以看出,在编写程序时尤其在面试时,先写好测试用例的重要性//考虑负数,数据溢出,非数字字符,以及变量的命名是否规范,特别对于字符串判断非空最基本的一定要有,否则程序放在软件中会出现段错误,这时候//带来的后果非常大int StrToInt(const char *s){int result=0;if(!s)printf("parameter is null\n");if(*s!='-'){while(*s !='\0'){if( (*s-'0')>9 || (*s-'0')<0 ){printf("the input contains other character\n");exit(-1);}result=*s-'0'+10*result;s++;if(result <0){printf("the input overfolw\n");exit(-1);}}}else{s++;while(*s !='\0'){if( (*s-'0')>9 || (*s-'0')<0 ){printf("the input contains other character\n");exit(-1);}result=*s-'0'+10*result;s++;if(result<0){printf("the input is overflow\n");exit(-1);}}result=-result;}return result;}int main(){char str[50];scanf("%s",str); //测试用例:true: 0, 12,-237, false: 23sd,23472847834345,-23243243243433printf("the num is %d\n",StrToInt(str));return 1;}
相关文章推荐
- 剑指offer——字符串转数字(奥妙各种)(没有考虑科学计数法的情况)(好题)
- 编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格,和其他字符的个数,在主函数中输入字符串以及输出上述统计的结果。再考虑将算的的结果放在一个数组中
- 编程实现:从字符中获取连续数组序列,如字符串"a1dl2iad9j3la5kudp7u9pn4blj8ap5u3e6ml9a"中可以得到的连续数字序列为1234556.【注】:只考虑一位,因此最长的数
- 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
- 将字符串转化为整数,如 "-123" --> -123
- 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
- 字符串提取数字
- 如何把一个字符串中的数字提取出来? Javascript
- c++中从一段字符串中提取数字
- 如果调试运行和直接Ctrl + F5运行结果不一样可以考虑这种情况
- c# 如何将字符串中用","分开的数字分别存入数组中
- Java正则表达式非贪婪提取字符串中的每个数字
- C#中如何从字符串中提取数字
- java从字符串中提取数字
- 函数功能:传入一个数组,返回数组中第二大数。已知数组中的对象都是数字构成的字符串,且任意两元素不相等。 如传入:@[@"1",@"2",@"3",@"4"],返回@"3"
- JavaScript:isNaN("21"):js函数判断字符串是否为数字
- PHP提取字符串中的数字
- java提取字符串中的字母数字
- 从字符串中提取数字
- 怎么把字符串中的数字提取出来