十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、C语言有atoi、atol、atof等库函数,可分别把ASCII编码的字符串转化为int、long、float类型的数字。
创新互联公司主营彭山网站建设的网络公司,主营网站建设方案,成都App定制开发,彭山h5微信小程序定制开发搭建,彭山网站营销推广欢迎彭山等地区企业咨询
头文件:stdlib.h
函数原型:int atoi(const char* nptr);
2、举个例子:
char *str="123";
int num=atoi(str);
执行后,num的值被初始化为123
具体的方法是:循环处理字符字符串中的每个字符,将其转化为相应的数,然后加起来,最后就可以得到转化后的整数 我这个程序可以处理字符串范围为长整型的取值范围 这个函数源码如下: ------------------------------------------------------------------ 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; }
int myfuction (char *id){
printf("%s\n",id);
return strlen(id);
}
main(){
char id[80] = "abc";
printf("%d", myfuction(id));
}
c语言是没法把字符串转换成对应函数的,c语言是结构化语言,程序怎么执行在编译时已经确定,没法像c#之类的托管代码高级语言能够动态绑定或者叫后期绑定。因为托管代码有运行时去选择执行,而c语言编译后的可执行文件为操作系统直接调用了,所以没法动态绑定。