C语言函数--atoi
在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 stub
String 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的更多相关文章
- C语言函数库
C语言函数库 分类函数目录函数进程函数诊断函数接口子程序输入输出 str字符串操作函数mem操作存贮数组 数学函数 时间日期函数 转换函数 分类函数,所在函数库为ctype.h[top] int is ...
- 从linux0.11中起动部分代码看汇编调用c语言函数
上一篇分析了c语言的函数调用栈情况,知道了c语言的函数调用机制后,我们来看一下,linux0.11中起动部分的代码是如何从汇编跳入c语言函数的.在LINUX 0.11中的head.s文件中会看到如下一 ...
- C语言(函数)学习之strstr strcasestr
C语言(函数)学习之[strstr]&[strcasestr]一.strstr函数使用[1]函数原型char*strstr(constchar*haystack,constchar*needl ...
- C语言函数sscanf()的用法
从文件读取数据是一件很麻烦的事,所幸有sscanf()函数. C语言函数sscanf()的用法 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( st ...
- 不可或缺 Windows Native (6) - C 语言: 函数
[源码下载] 不可或缺 Windows Native (6) - C 语言: 函数 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 函数 示例cFunction.h # ...
- C#委托与C语言函数指针及函数指针数组
C#委托与C语言函数指针及函数指针数组 在使用C#时总会为委托而感到疑惑,但现在总新温习了一遍C语言后,才真正理解的委托. 其实委托就类似于C/C++里的函数指针,在函数传参时传递的是函数指针,在调用 ...
- swift1.2语言函数和闭包函数介绍
swift1.2语言函数和闭包函数介绍 在编程中,随着处理问题的越来越复杂,代码量飞速增加.其中,大量的代码往往相互重复或者近似重复.如果不采有效方式加以解决,代码将很难维护. swift1.2语言函 ...
- Swift 1.1语言函数参数的特殊情况本地参数名外部参数名
Swift 1.1语言函数参数的特殊情况本地参数名外部参数名 7.4 函数参数的特殊情况 声明定义有参函数时,为函数的每一个参数都定义了参数名称.根据参数名定义的形式不同,函数参数包括本地参数和外部 ...
- C语言函数指针基础
本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础.如果你不讨厌事无巨细,请尽情阅读吧. 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具.本文将从C ...
随机推荐
- 洛谷P3244 [HNOI2015]落忆枫音
#include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #in ...
- HDU2222 自动机(学习中)
题目大意: 给你很多个单词,然后给你一篇文章,问给出的单词在文章中出现的次数. 解题思路: AC自动机入门题.需要注意的就是可能有重复单词 代码如下: #include<iostream> ...
- SPOJ 7258 Lexicographical Substring Search
Little Daniel loves to play with strings! He always finds different ways to have fun with strings! K ...
- Codeforces Round#403 (Div. 1)
唉,昨天晚上迷迷糊糊地去打cf,结果fst两题,掉回蓝了... A.Andryusha and Colored Balloons 题意:给定一棵树,任意两个距离小等于二的点不能染相同的颜色,求最小颜色 ...
- SpringCloud学习之DiscoveryClient探究
当我们使用@DiscoveryClient注解的时候,会不会有如下疑问:它为什么会进行注册服务的操作,它不是应该用作服务发现的吗?下面我们就来深入的来探究一下其源码. 一.Springframewor ...
- RabbitMQ-Spring AMQP
上篇文章RabbitMQ基础入门学习了rabbitMQ一些基础的api,当然spring也在原生代码的基础上做了更多的封装,这篇文章就基于spring-rabbit,学习一下spring的实现. p. ...
- easyui datagrid 得到冻结列跟非冻结列
var head = $('#ClassManagement').datagrid("options").columns; var fhead=$('#ClassManagemen ...
- Linux文件管理笔记
1)Linux识别磁盘:Linux通过不同的设备节点区分各个分区,节点名字的由磁盘名加分区号组成.例如,驱动器/dev/hba上的第一个分区叫做/dev/hba1,驱动器/dev/sdc上的第七个分区 ...
- E1
en表"使怎么样" engage 吸引,从事,订婚 be engaged in doing sth. 忙于 endure 忍耐,忍受 enforce 强制执行 enrol ...
- 作业03-面向对象入门.md
1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识点组织起来.请使用工具画出本周学习到的知识点及知识点之间的联系.步骤如下: 1.1 写出你 ...