Linux atoi函数是一种C语言标准库函数,全称是”ascii to integer”,它的功能是将字符串转换为数字类型,即将字符串的ASCII编码转换为整数形式的数字(int)。 Linux atoi函数的实现及原理如下:

实现
Linux atoi函数的实现比较简单,如下代码所示。
int atoi(const char *str) {
int result = 0;
int sign = 1;
//检查传入参数是否合法
if (str == NULL) {
//若str为负数,则返回负数
if (*str == ‘-‘){
//根据ASCII码转换为对应的整数
while (*str != ‘\0’) {
result = result * 10 + *str – ‘0’;
return result * sign;
原理
Linux atoi函数的工作原理可以概括为整数转换法,即将字符串中的每一个字母的ASCII码值依次转换为对应的整数值,然后按照十进制的方式表示出来整数的值。
比如,将字符串“1234”转换为整数的过程:字符串的每一个字母的ASCII码值的转换为对应的整数值:1(1)、2(2)、3(3)、4(4);然后按照十进制的方式进行值的计算:1 x 10^3 + 2 x 10^2 + 3 x 10^1 + 4 x 10^0 = 1234。
总结
Linux atoi函数是C标准库函数之一,它实现的功能是将字符串的ASCII编码转换为整数形式的数字(int)。
它的原理是整数转换法,通过将字符串中的每一个字母的ASCII码转换为对应的整数值,然后按照十进制的方式表达出整数的值。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
c语言strtod()函数的用法
index对应第一个操作数的字符数,这个前提是操作数前面没有空格一类另strtod自动跳过的字符。 因为endptr是strtod转换字符串的结尾位置,比如buf中的字符串是1234abc,转换时将转换到1234为止,strtod发现字符a不属于合法数字内容,会在遇到a时结束转换,并另endptr指向a的这个位置。 index=endptr-buf;会得到a字符前面有几个字符的计数。
请高手提供一些C语言中常用的库函数,并说明它的作用和所在头文件.
字符处理函数本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换头文件 ctype.h函数列表<>函数类别 函数用途 详细说明字符测试 是否字母和数字 isalnum是否字母 isalpha是否控制字符 iscntrl是否数字 isdigit是否可显示字符(除空格外) isgraph是否可显示字符(包括空格) isprint是否既不是空格,又不是字母和数字的可显示字符 ispunct是否空格 isspace是否大写字母 isupper是否16进制数字(0-9,A-F)字符 isxdigit字符大小写转换函数 转换为大写字母 toupper转换为小写字母 tolower地区化本类别的函数用于处理不同国家的语言差异。 头文件 local.h函数列表函数类别 函数用途 详细说明地区控制 地区设置 setlocale数字格式约定查询 国家的货币、日期、时间等的格式转换 localeconv数学函数本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51)头文件 math.h函数列表函数类别 函数用途 详细说明错误条件处理 定义域错误(函数的输入参数值不在规定的范围内)值域错误(函数的返回值不在规定的范围内)三角函数 反余弦 acos反正弦 asin反正切 atan反正切2 atan2余弦 cos正弦 sin正切 tan双曲函数 双曲余弦 cosh双曲正弦 sinh双曲正切 tanh指数和对数 指数函数 exp指数分解函数 frexp乘积指数函数 fdexp自然对数 log以10为底的对数 log10浮点数分解函数 modf幂函数 幂函数 pow平方根函数 sqrt整数截断,绝对值和求余数函数 求下限接近整数 ceil绝对值 fabs求上限接近整数 floor求余数 fmod本分类函数用于实现在不同底函数之间直接跳转代码。 头文件 setjmp.h io.h函数列表函数类别 函数用途 详细说明保存调用环境 setjmp恢复调用环境 longjmp信号处理该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件 signal.h函数列表函数类别 函数用途 详细说明指定信号处理函数 signal发送信号 raise可变参数处理本类函数用于实现诸如printf,sCanf等参数数量可变底函数。 头文件 stdarg.h函数列表函数类别 函数用途 详细说明可变参数访问宏 可变参数开始宏 va_start可变参数结束宏 va_end可变参数访问宏 访问下一个可变参数宏 va_arg输入输出函数该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现头文件 stdio.h函数列表函数类别 函数用途 详细说明文件操作删除文件 remove修改文件名称 rename生成临时文件名称 tmpfile得到临时文件路径 tmpnam文件访问 关闭文件 fclose刷新缓冲区 fflush打开文件 fopen将已存在的流指针和新文件连接 freopen设置磁盘缓冲区 setbuf设置磁盘缓冲区 setvbuf格式化输入与输出函数 格式输出 fprintf格式输入 fscanf格式输出(控制台) printf格式输入(控制台) scanf格式输出到缓冲区 sprintf从缓冲区中按格式输入 sscanf格式化输出 vfprintf格式化输出 vprintf格式化输出 vsprintf字符输入输出函数 输入一个字符 fgetc字符串输入 fgets字符输出 fputc字符串输出 fputs字符输入(控制台) getc字符输入(控制台) getchar字符串输入(控制台) gets字符输出(控制台) putc字符输出(控制台) putchar字符串输出(控制台) puts字符输出到流的头部 ungetc直接输入输出 直接流读操作 fread直接流写操作 fwrite文件定位函数 得到文件位置 fgetpos文件位置移动 fseek文件位置设置 fsetpos得到文件位置 ftell文件位置复零位 remind错误处理函数 错误清除 clearerr文件结尾判断 feof文件错误检测 ferror得到错误提示字符串 perror实用工具函数本分类给出了一些函数无法按以上分类,但又是编程所必须要的。 头文件 stdlib.h函数列表函数类别 函数用途 详细说明字符串转换函数 字符串转换为整数 atoi字符串转换为长整数 atol字符串转换为浮点数 strtod字符串转换为长整数 strtol字符串转换为无符号长整型 strtoul伪随机序列产生函数 产生随机数 rand设置随机函数的起动数值 srand存储管理函数 分配存储器 calloc释放存储器 free存储器分配 malloc重新分配存储器 realloc环境通信 中止程序 abort退出程序执行,并清除环境变量 atexit退出程序执行 exit读取环境参数 getenv程序挂起,临时执行一个其他程序 system搜索和排序工具 二分查找(数据必须已排序) bsearch快速排序 qsort整数运算函数 求绝对值 absdiv得到除法运算底商和余数求长整形底绝对值 labs求长整形除法的商和余数 ldiv多字节字符函数 得到多字节字符的字节数 mblen得到多字节字符的字节数 mbtowc多字节字符转换 wctomb多字节字符的字符串操作 将多字节串转换为整数数组 mbstowcs将多字节串转换为字符数组 mcstowbs字符串处理本分类的函数用于对字符串进行合并、比较等操作头文件 string.h函数列表函数类别 函数用途 详细说明字符串拷贝 块拷贝(目的和源存储区不可重叠) memcpy块拷贝(目的和源存储区可重叠) memmove串拷贝 strcpy按长度的串拷贝 strncpy字符串连接函数 串连接 strcat按长度连接字符串 strncat串比较函数 块比较 memcmp字符串比较 strcmp字符串比较(用于非英文字符) strcoll按长度对字符串比较 strncmp字符串转换 strxfrm字符与字符串查找 字符查找 memchr字符查找 strchr字符串查找 strcspn字符串查找 strpbrk字符串查找 strspn字符串查找 strstr字符串分解 strtok杂类函数 字符串设置 memset错误字符串映射 strerror求字符串长度 strlen日期和时间函数本类别给出时间和日期处理函数头文件 time.h函数列表函数类别 函数用途 详细说明时间操作函数 得到处理器时间 clock得到时间差 difftime设置时间 mktime得到时间 time时间转换函数 得到以ASCII码表示的时间 asctime得到字符串表示的时间 ctime得到指定格式的时间 strftime函数库未来的发展方向本部分用于说明各类别函数库在将来如何发展。 序号 库类别 头文件 详细说明1 错误处理 errno.h2 字符处理 ctype.h3 地区化 local.h4 数学函数 math.h5 信号处理 signal.h6 输入输出 stdio.h7 实用工具程序 stdlib.h8 字符串处理 string.h
malloc函数怎么用
原型:extern void *malloc(unsigned int num_bytes); 用法:#include 或#include 功能:分配长度为num_bytes字节的内存块 说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。 当内存不再使用时,应使用free()函数将内存块释放。 malloc的语法是:指针名=(数据类型*)malloc(长度),(数据类型*)表示指针. 举例: // malloc.c #include #include main() { char *p; clrscr(); // clear screen p=(char *)malloc(100); if(p) printf(Memory Allocated at: %x,p); else printf(Not Enough Memory!\n);if(p) free(p); getchar(); return 0; }
发表评论