atoi、atof、itoa、itow函数简介

2024-02-20 19:58
文章标签 函数 简介 itoa atoi atof itow

本文主要是介绍atoi、atof、itoa、itow函数简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



本文转自:http://blog.sina.com.cn/s/blog_53a732bb0100ws2v.html

atoi、atof、itoa、itow函数是windows平台下实现字符串与数值相互转换的函数。Linux平台下请使用标准库中的sprintf与sscanf函数。

 
atoi函数

原型:int atoi( const char *string );

ASCII to integer

作用:将字符串转为integer类型

 

atof函数

原型:double atof( const char *string );

ASCII to float

作用:将字符串转为double类型

 

对于以上函数,若字符串无法转化为合法的数值类型,函数将返回0 。

使用范例(来自MSDN):
atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用Code
 1atoi、atof、_itoa、_itow 函数使用#include <stdlib.h>
 2atoi、atof、_itoa、_itow 函数使用#include <stdio.h>
 3atoi、atof、_itoa、_itow 函数使用
 4atoi、atof、_itoa、_itow 函数使用void main( void )
 5atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用{
 6atoi、atof、_itoa、_itow 函数使用   char *s; double x; int i; long l;
 7atoi、atof、_itoa、_itow 函数使用
 8atoi、atof、_itoa、_itow 函数使用   printf( " testing atoi,atof,atol function :\n" ;
 9atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用   = "  -2309.12E-15"   
10atoi、atof、_itoa、_itow 函数使用   = atof( );
11atoi、atof、_itoa、_itow 函数使用   printf( "atof test: ASCII string: %s\tfloat:  %e\n"s, );
12atoi、atof、_itoa、_itow 函数使用
13atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用   = "7.8912654773d210" 
14atoi、atof、_itoa、_itow 函数使用   = atof( );
15atoi、atof、_itoa、_itow 函数使用   printf( "atof test: ASCII string: %s\tfloat:  %e\n"s, );
16atoi、atof、_itoa、_itow 函数使用
17atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用   = "  -9885 pigs"     
18atoi、atof、_itoa、_itow 函数使用   = atoi( );
19atoi、atof、_itoa、_itow 函数使用   printf( "atoi test: ASCII string: %s\t\tinteger: %d\n"s, );
20atoi、atof、_itoa、_itow 函数使用
21atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用   = "98854 dollars"    
22atoi、atof、_itoa、_itow 函数使用   = atol( );
23atoi、atof、_itoa、_itow 函数使用   printf( "atol test: ASCII string: %s\t\tlong: %ld\n"s, );
24atoi、atof、_itoa、_itow 函数使用}
25atoi、atof、_itoa、_itow 函数使用
 

输出:

atof test: ASCII string:   -2309.12E-15 float: -2.309120e-012

atof test: ASCII string: 7.8912654773d210 float: 7.891265e+210

atoi test: ASCII string:   -9885 pigs    integer: -9885

atol test: ASCII string: 98854 dollars    long: 98854


 

_itoa函数

原型:char *_itoa( int value, char *str, int radix  );//2<=radix<=36

Integer to ASCII

作用:将Integer类型转换为radix进制,然后以ASCII字符串的形式存放在str中

 

_itow函数

wchar_t * _itow( int value, wchar_t *str, int radix ); //2<=radix<=36

Integer to Wide Char

作用:将Integer类型转换为radix进制,然后以宽字符串的形式存放在str中
 

    以上2个函数均有安全隐患(当字符数组长度不足保存结果时会导致缓冲区溢出),在vs2008中编译时会有警告。推荐使用它们的安全版本—— _itoa_s与_itow_s 。

 
_itoa_s 函数原型如下:

 errno_t _itoa_s(

   int value,

   char *buffer,

   size_t sizeInCharacters,  //存放结果的字符数组长度

   int radix

);

当转换的结果长度比sizeInCharacters变量大时,由于出现access violation,函数将马上终止,而_itoa函数将继续运行。

使用范例(来自MSDN):

atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用Code
 1atoi、atof、_itoa、_itow 函数使用#include<string.h>
 2atoi、atof、_itoa、_itow 函数使用#include<stdlib.h>
 3atoi、atof、_itoa、_itow 函数使用#include<stdio.h>
 4atoi、atof、_itoa、_itow 函数使用
 5atoi、atof、_itoa、_itow 函数使用int main( void )
 6atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用{
 7atoi、atof、_itoa、_itow 函数使用   char buffer[65];
 8atoi、atof、_itoa、_itow 函数使用   int r;
 9atoi、atof、_itoa、_itow 函数使用   printf( "test _itoa function \n" ;
10atoi、atof、_itoa、_itow 函数使用   forr=10r>=2--)
11atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用   atoi、atof、_itoa、_itow 函数使用{
12atoi、atof、_itoa、_itow 函数使用     _itoa( -1buffer, ); // C4996
13atoi、atof、_itoa、_itow 函数使用     // Note: _itoa is deprecated; consider using _itoa_s instead
14atoi、atof、_itoa、_itow 函数使用     printf( "base %d: %s (%d chars)\n"r, buffer, strnlen(buffer, _countof(buffer)) );
15atoi、atof、_itoa、_itow 函数使用   }
16atoi、atof、_itoa、_itow 函数使用
17atoi、atof、_itoa、_itow 函数使用   printf( "test _itoa_s function \n " ;
18atoi、atof、_itoa、_itow 函数使用   forr=10r>=2--)
19atoi、atof、_itoa、_itow 函数使用atoi、atof、_itoa、_itow 函数使用   atoi、atof、_itoa、_itow 函数使用{
20atoi、atof、_itoa、_itow 函数使用      _itoa_s( -1buffer, 65);
21atoi、atof、_itoa、_itow 函数使用      printf( "base %d: %s (%d chars)\n"r, buffer, strnlen(buffer, _countof(buffer)) );
22atoi、atof、_itoa、_itow 函数使用   }
23atoi、atof、_itoa、_itow 函数使用}
24atoi、atof、_itoa、_itow 函数使用

 

输出:

base 10: -1 (2 chars)

base 9: 12068657453 (11 chars)

base 8: 37777777777 (11 chars)

base 7: 211301422353 (12 chars)

base 6: 1550104015503 (13 chars)

base 5: 32244002423140 (14 chars)

base 4: 3333333333333333 (16 chars)

base 3: 102002022201221111210 (21 chars)

base 2: 11111111111111111111111111111111 (32 chars)

 

base 10: -1 (2 chars)

base 9: 12068657453 (11 chars)

base 8: 37777777777 (11 chars)

base 7: 211301422353 (12 chars)

base 6: 1550104015503 (13 chars)

base 5: 32244002423140 (14 chars)

base 4: 3333333333333333 (16 chars)

base 3: 102002022201221111210 (21 chars)

base 2: 11111111111111111111111111111111 (32 chars)

这篇关于atoi、atof、itoa、itow函数简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/729373

相关文章

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Oracle的to_date()函数详解

《Oracle的to_date()函数详解》Oracle的to_date()函数用于日期格式转换,需要注意Oracle中不区分大小写的MM和mm格式代码,应使用mi代替分钟,此外,Oracle还支持毫... 目录oracle的to_date()函数一.在使用Oracle的to_date函数来做日期转换二.日

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle