atoi()和itoa()函数详解以及C语言实现
atoi()函数
atoi()原型: int atoi(const char *str );
函数功能:把字符串转换成整型数。
参数str:要进行转换的字符串
返回值:每个函数返回 int 值,此值由将输入字符作为数字解析而生成。 如果该输入无法转换为该类型的值,则atoi的返回值为 0。
注意:使用该函数时要注意atoi返回的是int类型,注意输入str的范围不要超出int类型的范围。
一小段代码演示一下该函数的使用:
#include <stdio.h>
#include <stdlib.h> int main()
{
int a;
char *ptr1 = "-12345"; a = atoi(ptr1); printf("a = %d,%d/n", a); return ;
}
下面来用C语言进行实现该函数:
#include <stdio.h>
#include <stdbool.h> int my_atoi(const char *src)
{
int s = ;
bool isMinus = false; while(*src == ' ') //跳过空白符
{
src++;
} if(*src == '+' || *src == '-')
{
if(*src == '-')
{
isMinus = true;
}
src++;
}
else if(*src < '' || *src > '') //如果第一位既不是符号也不是数字,直接返回异常值
{
s = ;
return s;
} while(*src != '\0' && *src >= '' && *src <= '')
{
s = s * + *src - '';
src++;
}
return s * (isMinus ? - : );
} int main()
{
int num; char *str = "a123456";
num = my_atoi(str);
printf("atoi num is: %d \r\n", num); return ;
}
itoa()函数
itoa()原型: char *itoa( int value, char *string,int radix);
原型说明:
输入参数:
value:要转换的数据。
string:目标字符串的地址。
radix:转换后的进制数,可以是10进制、16进制等,范围必须在 2-36。
功能:将整数value 转换成字符串存入string 指向的内存空间 ,radix 为转换时所用基数(保存到字符串中的数据的进制基数)。
返回值:函数返回一个指向 str,无错误返回。
注意:itoa不是一个标准的c函数,他是windows特有的,跨平台写程序,要用sprintf。
#include <stdio.h>
#include <ctype.h> //整数的各位数字加‘0’转换为char型并保存到字符数组中
int itoa(int n, char s[])
{
int i;
int j;
int sign; sign = n; //记录符号
if(sign < )
{
n = -n; //变为正数处理
} i = ;
do{
s[i++] = n % + ''; //取下一个数字
}while((n /= ) > ); if(sign < )
{
s[i++] = '-';
s[i] = '\0';
} for(j = i; j >= ; j-- )
{
printf("%c \r\n", s[j]);
}
return ;
} int main()
{
int n;
char s[]; n = -;
itoa(n, s);
return ;
}
atoi()和itoa()函数详解以及C语言实现的更多相关文章
- 【转载】C语言itoa()函数和atoi()函数详解(整数转字符C实现)
本文转自: C语言itoa()函数和atoi()函数详解(整数转字符C实现) 介绍 C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. int/float to ...
- malloc 与 free函数详解<转载>
malloc和free函数详解 本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...
- NSSearchPathForDirectoriesInDomains函数详解
NSSearchPathForDirectoriesInDomains函数详解 #import "NSString+FilePath.h" @implementation ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- Linux C popen()函数详解
表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...
- kzalloc 函数详解(转载)
用kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0. view plain /** * kzal ...
- Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...
- jQuery.attr() 函数详解
一,jQuery.attr() 函数详解: http://www.365mini.com/page/jquery-attr.htm 二,jQuery函数attr()和prop()的区别: http: ...
- memset函数详解
语言中memset函数详解(2011-11-16 21:11:02)转载▼标签: 杂谈 分类: 工具相关 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大 ...
随机推荐
- 基于EasyNVR摄像机无插件直播方案二次开发实现自己的摄像机IPC-NVR无插件化直播解决方案
背景介绍 在之前的博客中<基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控>,对EasyNVR所实现的功能我们已经有较多描述,这些也在方案地址:http://ww ...
- C#对泛型实例化对像的方法
最近在搞一个小东东,用到了泛型的处理,用到了对泛型的实例化问题.下面来讲讲对泛型的实例化,以代码为例,如: public class A { } public class B<T> { p ...
- 【视频开发】关于FFMPEG中内存泄漏的问题之av_bitstream_filter_filter
How may I free pkt in an ffmpeg write frame method Rate this: See more: C++ ffmpeg Greetings I' ...
- Influx Sql系列教程八:query数据查询基本篇
前面几篇介绍了InfluxDB的添加,删除修改数据,接下来进入查询篇,掌握一定的SQL知识对于理解本篇博文有更好的帮助,下面在介绍查询的基础操作的同时,也会给出InfluxSql与SQL之间的一些差别 ...
- 【转】Axure RP9.0.0.3661Team Edition激活码
被授权人:Axure 授权密码:ydiJnG8quHEhHLu/MWonjkeul5LYB1+tX9fyPVnpdmU0cb/NJzVs45uD7z5Iswmi 转载于:http://menvscod ...
- Jenkins运行python脚本出现 configparser.NoSectionError: No section: 'XXXXXX'
原来的代码如下: def get_test_config(tag, key, config="config.ini"): cf = configparser.ConfigParse ...
- 函数的练习2——python编程从入门到实践
8-9 魔术师:创建一个包含魔术师名字的列表,并将其传递一个名为show_magicians()的函数,这个函数打印列表中每个魔术师的名字. def show_magicians(magicians) ...
- Android--TextView第一个单词大写
自定义TextView: public class FirstBoldTextView extends TextView { private boolean firstWordBold = false ...
- Java -- 最简单的认识重载
定义 方法的名称相同,参数个数或类型不同的时候就成为方法重载. 示例 编写一个两个数相加的方法: public class hello{ public static void main(String ...
- golang ---获取磁盘信息
package main import ( "fmt" "github.com/StackExchange/wmi" ) type Storage struct ...