怎样用c语言编写将字符串转换为整数的函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用c语言编写将字符串转换为整数的函数相关的知识,希望对你有一定的参考价值。
具体的方法是:循环处理字符字符串中的每个字符,将其转化为相应的数,然后加起来,最后就可以得到转化后的整数 我这个程序可以处理字符串范围为长整型的取值范围 这个函数源码如下: ------------------------------------------------------------------ long toInteger( char* str ) long result = 0; int len; int i = 0; long tmp; len = strlen( str ); while ( i < len ) tmp = *str++ - '0'; if ( 9 < tmp ) printf( "\"%c\" is not a number!\n" , tmp + '0' ); break; tmp *= pow( 10 , len - i - 1 ); result += tmp; i ++; return result; 本函数可以对输入的字符串进行错误识别,若包含非数字字符则报错(函数没有考虑输入为负数) 关于这个函数的使用方法,以下为一个例子 程序源代码如下,已通过调试编译,可以运行: ---------------------------------------------------------------------- #include "stdio.h" #include "math.h" #include "string.h" long toInteger( char* str ); int main() char* str = "123456"; long a; clrscr(); a = toInteger( str ); printf( "%ld\n" , a ); return 0; long toInteger( char* str ) long result = 0; int len; int i = 0; long tmp; len = strlen( str ); while ( i < len ) tmp = *str++ - '0'; if ( 9 < tmp ) printf( "\"%c\" is not a number!\n" , tmp + '0' ); break; tmp *= pow( 10 , len - i - 1 ); result += tmp; i ++; return result; 参考技术A #include <stdio.h> #include <stdlib.h> int str2int(char *str) int n = 0; while('0' <= *str && *str <= '9') n = n * 10 + *str++ - '0'; return n; int main() char str[10]; gets(str); /*读取字符串*/ printf("str2int:%d\n", str2int(str)); /*使用自定义函数*/ printf("atoi:%d\n", atoi(str)); /*使用库函数*/ return 0; 本回答被提问者采纳c语言中如何将字符串转化成整数型并输出?
参考技术Ac语言中,可以使用atoi()函数将字符串转化成整数型并输出。
atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。
如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0 。特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi输入的字符串对应数字存在大小限制(与int类型大小有关),若其过大可能报错-1。
扩展资料:
C语言常用函数:
1、int abs(int i)
返回整型参数i的绝对值。
2、double cabs(struct complex znum)
返回复数znum的绝对值。
3、double fabs(double x)
返回双精度参数x的绝对值。
4、long labs(long n)
返回长整型参数n的绝对值。
5、double exp(double x)
返回指数函数ex的值。
6、double frexp(double value,int *eptr)
返回value=x*2n中x的值,n存贮在eptr中。
7、double ldexp(double value,int exp)
返回value*2exp的值。
8、double log(double x)
返回logex的值。
9、double log10(double x)
返回log10x的值。
10、double pow(double x,double y)
返回x^y的值。
参考资料来源:百度百科-atoi
以上是关于怎样用c语言编写将字符串转换为整数的函数的主要内容,如果未能解决你的问题,请参考以下文章
C语言试题三十二之编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。
C语言试题三十二之编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。
自定义一个函数itos,将一个整数转换为字符串的功能,并编写主函数调用该函数。