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语言实现的更多相关文章

  1. 【转载】C语言itoa()函数和atoi()函数详解(整数转字符C实现)

    本文转自: C语言itoa()函数和atoi()函数详解(整数转字符C实现) 介绍 C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. int/float to ...

  2. malloc 与 free函数详解<转载>

    malloc和free函数详解   本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...

  3. NSSearchPathForDirectoriesInDomains函数详解

    NSSearchPathForDirectoriesInDomains函数详解     #import "NSString+FilePath.h" @implementation ...

  4. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  5. Linux C popen()函数详解

    表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...

  6. kzalloc 函数详解(转载)

    用kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0. view plain /** * kzal ...

  7. Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt

    PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...

  8. jQuery.attr() 函数详解

    一,jQuery.attr()  函数详解: http://www.365mini.com/page/jquery-attr.htm 二,jQuery函数attr()和prop()的区别: http: ...

  9. memset函数详解

    语言中memset函数详解(2011-11-16 21:11:02)转载▼标签: 杂谈 分类: 工具相关  功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大 ...

随机推荐

  1. SpringCloud基础知识

    什么是SpringCloud Spring Cloud是一系列框架的有序集合. 为什么用SpringCloud Spring Cloud涵盖面广,能够与Spring Framework.Spring ...

  2. Navicat 破解版链接

    本文为转载内容 百度网盘地址: https://pan.baidu.com/s/1nvIIOad 压缩包中有注册码和使用方法

  3. pipline脚本k8s版

    def label = "jnlp-slave" podTemplate(label: label, cloud: 'kubernetes',containers: [ conta ...

  4. copyProperties 忽略null值字段

    在做项目时遇到需要copy两个对象之间的属性值,但是有源对象有null值,在使用BeanUtils来copy时null值会覆盖目标对象的同名字段属性值,然后采用以下方法找到null值字段,然后忽略: ...

  5. LODOP打印项水平居中

    LODOP控制打印项水平居中,可以用如下语句,该语句控制的是打印项本身在纸张中水平居中.LODOP.SET_PRINT_STYLEA(0,"Horient",2);这个根据大的打印 ...

  6. [LeetCode] 749. Contain Virus 包含病毒

    A virus is spreading rapidly, and your task is to quarantine the infected area by installing walls. ...

  7. 切换普通用户报 -bash: fork: retry: No child processes

    ssh 连接普通用户 报这个错误 -bash: fork: retry: No child processes 解决办法: 更改vi /etc/security/limits.d/20-nproc.c ...

  8. 深度解析qml引擎---(2)绑定(binding)

    强烈的希望是人生中比任何欢乐更大的兴奋剂.--尼采 上一篇文章讲了QML引擎加载qml文件的过程,大体过程是,解析qml文件,然后为文件中的每个元素创建对应的c++对象.例如,qml文件中如果使用了T ...

  9. SpringBoot(1)

    SpringBoot 8/2 CRUD 发送put请求修改数据有三个步骤: SpringMVC中配置HiddenHttpMethodFilter 页面上创建一个post请求(form标签只能写get和 ...

  10. 用Python递归做个多层次的文件执行

    想用 递归实现多层次的 '.py'执行但是发现好像不能 import os def func(path): if os.path.isdir(path): for name in os.listdir ...