在Java语言中,由于面向对象的思想,它对基本数据类型也进行了相应的封装,例如 int 就封装成了 Integer 类,这无疑会使我们的操作方便了许多,例如,有一个字符串,我想把它转换为int类型或者是float类型等,就可以利用数据类的相关方法,例如:

package com.brucezhang.test;public class Test {/*** @param args* @author DLUTBruceZhang*/public static void main(String[] args) {// TODO Auto-generated method stubString test_value = "23";System.out.println(Integer.parseInt(test_value));}}

  这么好用的东西在C语言中有没有呢?当然,今天我就为大家介绍C的一个函数--atoi,这个函数的完整名字是:ASCIItointeger ,也就是字符串转向整形,下面我就来具体的介绍这个函数。

      首先给出这个函数的原型:

 int atoi(const char *nptr);

      大家可以看到,这个函数接收一个字符指针常量,并返回一个 int 型的值。返回值很好理解,那么我们传入的参数值有什么要求呢?这里就存在三种情况需要解释。


一.指针指向一个数值

      如果我们传入的指针指向的确实是一个值,那么这个函数的返回值就是字符串转向整形,就像这个的指针值

char *test_value1 = "23";

二.指针指向字符串,但是字符串中存在数值且字符串或字符在前

      哈哈,这段解释不怎么太清楚,我把例子拿出来大家看下就应该能明白了

char *test_value2 = "DLUTBruceZhang23";

如果我们传入这样的值,那么很遗憾,这个函数不会返回我们想要的数值,返回的是0

三.指针指向字符串,但是字符串中存在数值且字符串或字符在后

      又是不太清楚的解释,贴下代码吧

char *test_value3 =  "23DLUTBruceZhang";

如果我们传入的是这样的值,那么这个函数做的工作是输出数字直到字符为止,也就是输出23,后面只要出现的是字符,那么一律抛弃不在输出,也就是“截断输出”


      好了,说了那么多,没有个例子怎么行呢,我把完整的测试代码贴出来

#include<stdio.h>
#include<stdlib.h>
int main(void)
{char *test_value1 = "23";char *test_value2 = "DLUTBruceZhang23";char *test_value3 =  "23DLUTBruceZhang";printf("test_value1 = %d\n", atoi(test_value1));printf("test_value2 = %d\n", atoi(test_value2));printf("test_value3 = %d\n", atoi(test_value3));return 0;
}

运行这个程序,得到如下的输出:

哈哈,验证了我的说法,得到了正确答案。

C语言函数--atoi相关推荐

  1. c语言atoi函数定义,C语言函数 atoi()

    C语言函数 atoi() C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.下面我们来看看C语言函数 atoi() C语言函数 ...

  2. C语言【atoi函数】

    C语言[atoi函数]

  3. 函数 atoi() 和 itoa() 的 C 语言实现。

    函数 atoi() 和 itao() 的 C 语言实现. 1. atoi() 函数     #include <stdio.h> #include <stdlib.h> #in ...

  4. c语言atoi的头文件,atoi函数(atoi函数在那个头文件)

    需要导入头文件#include 将字符串转换成一个整数并返回结果.参数str 以数字开头,当函数从str 中读到非数字字符则结束转换并将结果返回.例如, int i = atoi( . atoi(s. ...

  5. linux父进程中显示子进程pid,请教linux下c语言函数fork父进程打印子进程的PID

    请教linux下c语言函数fork父进程打印子进程的PID 关注:296  答案:2  信息版本:手机版 解决时间 2019-01-14 04:55 雨不眠的下 2019-01-13 12:23 用于 ...

  6. c语言函数官网,c语言函数

    c语言函数[编辑] 概述 c语言函数包括多种函数.它的出现方便了人们对很多数据的计算,节省了大量的时间,方便了人们的计算,为人们提供了一个简便的,时用的函数运算.也在一定的领域中有一个突破性进步,但是 ...

  7. 面试官问你斐波那契数列的时候不要高兴得太早 搞懂C语言函数指针 搜索引擎还可以这么玩? 那些相见恨晚的搜索技巧...

    面试官问你斐波那契数列的时候不要高兴得太早 前言 假如面试官让你编写求斐波那契数列的代码时,是不是心中暗喜?不就是递归么,早就会了.如果真这么想,那就危险了. 递归求斐波那契数列 递归,在数学与计算机 ...

  8. C语言函数大全(上)-ABCDEFGHIKL

    C语言函数大全,包含功能描述,函数声明,程序demo,本章为上部,首字母ABCDEFGHIKL的函数. 目录 A B C D E F G H I K L A 函数名: abort 功 能: 异常终止一 ...

  9. c语言exit在哪个头文件_C语言函数执行成功时,返回1和返回0,究竟哪个好?

    基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...

最新文章

  1. PyTorch 笔记(19)— Tensor 用 GPU 加速
  2. 在CentOS 6.6 64bit上为vim 7.4安装并配置vim-airline插件
  3. 三种流行的数据库查询表记录数【转】
  4. Linux下C++连MySQL数据库
  5. 对象和json相互转换
  6. 数据库系统实训——实验二——单表查询
  7. Java获取当前时间(二)
  8. vim 快捷键_VIM学习笔记 环绕字符编辑(surround)
  9. 关于#if NET1的一点小得
  10. Apple Watch 7 显示屏尺寸和外观
  11. 在线PDF保护解除器,完全免费,没有文件数量限制 - PDF在线解锁器
  12. Google Guice简介
  13. 配置Eclipse for Java 9
  14. 2019年电大计算机应用基础操作题,2019年电大《计算机应用基础》(操作题解题指导.docx...
  15. A/B Test(AB测试) 流程、常见面试问题及解答
  16. win10操作快捷键 VsCode操作快捷键及使用
  17. ppp lcp协商报文有哪些_课后分享PPP协议第十三周
  18. 运维学python用不上_数读 | 为什么运维朋友们都需要学Python?
  19. 仿鱼爪新媒账号过户转让平台源码/友价内核账号交易源码
  20. Excel-移动平均分析及预测分析

热门文章

  1. Linux 什么时候才能足够完美?
  2. 《深入解析Android 5.0系统》——第1章,第1.2节安装开发包
  3. promise和Angular中的 $q, defer
  4. Linux 自动重启进程
  5. 连接web端,mysql,返回乱码解决
  6. python实战===图片转换为字符的源码(转)
  7. 这年头居然连MSDN Library都靠不住呀
  8. 发布Web应用程序时发生的“xx.aspx.cs文件不存在”错误
  9. 关于Java招聘那点事
  10. nginx收到空包问题