(原创)C语言用于将字符串转换成长整型的函数,比原来的函数强劲
2010-08-06 18:52
344 查看
这是我在写一个百度之星题目时顺带写出来的,因为不满足原来的函数所以想要自己写个,代码如下,里面对函数也都有说明,有任何问题请留言,谢谢!
我用的是Arch Linux系统,vim编辑,gcc编译。
以下是测试函数:
我用的是Arch Linux系统,vim编辑,gcc编译。
#include <string.h> #include <stdlib.h> //str2l.h //主函数为double str2l(char s[]),通过调用此函数来进行操作。 //double str2l(char src[]) //参数为需要操作的字符串。需要操作的字符串必须介于-9223372036854775808和9223372036854775807之间,即-2^63和2^63-1之间,此范围外的数据参与转换所得结果不正确。函数对传入的实参进行判断符号,并设定转换起始位置以避开其符号,之后将字符串、起始位置、字符串长度作为参数传递给cha()函数进行数值转换,获>得其long类型返回结果后将结果添加符号后返回给调用程序。 //double cha(char in[], int begin, int length) //参数为字符串、起始位置、字符串长度。在函数中会对字符串中字符进行判断是否为数字,如果是数字则进行计算,返回long类型的数据,如果发现非数字字符则强制退出程序。程序正常返回结果为字符串转换后所得long类型的数据。 // By 陈志东 From 南京工业大学外语学院 // 2010年7月12日 long cha(char in[], int begin, int length){ int a; long tmp; tmp=0; for(a=begin;a<length;a++){ if(in[a]>='0' && in[a]<='9'){ tmp=10*tmp+(in[a]-'0'); } else{ printf("It's not a integer/n"); exit(1); } } return tmp; } long str2l(char src[]){ int i,len; long result=0; len=strlen(src); if(src[0]=='-'){ result=cha(src,1,len)*(-1); } else if(src[0]=='+'){ result=cha(src,1,len); } else{ result=cha(src,0,len); } return result; } //End
以下是测试函数:
#include <stdio.h> #include "str2l.h" //测试程序 int main(int argc,char * argv[]){ if(argc!=2){ printf("Plus a number no more than 22 digits after the CMD!/n"); return 0; } long tmp; tmp=str2l(argv[1]); printf("the finale answer is %ld/n",tmp); return 0; } //End
相关文章推荐
- C语言strtol()函数:将字符串转换成long(长整型数)
- C语言strtol()函数:将字符串转换成long(长整型数)
- L1-025. 正整数A+B(C语言将字符串数字转换成整型数函数)
- 【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- C语言---整型字符串转换
- C语言strlwr()函数:将字符串转换为小写
- 编写函数实现:整型数转换成字符串
- 【C语言】编写函数实现库函数atoi,把字符串转换成整形
- C语言---整型字符串转换
- 【c语言】编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
- C语言 程序 字符串转换成整型,整型转换成字符串
- C语言 将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数 函数原型:double my_atof(char *str)
- 自写字符串转换成整型函数
- 用c语言实现 编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
- C语言atoi()函数:将字符串转换成int(整数)和sprintf和memset
- C语言整型和字符串之间的转换
- 练习2-3 编写函数 htoi(s),把由十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9、a~f以及A~F。
- C语言strtod()函数:将字符串转换为double
- 练习 2-3 编写函数 htoi(s),把由十六进制数字组成的字符串(包含可选的前缀 0x 或 0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9、a~f 以及 A~F。
- C语言 编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)