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 ...
随机推荐
- 【USACO Feb 2014】Cow Decathlon
题目描述 约翰有 N 头奶牛,组成了一直队伍参加全能比赛.比赛一共有 N 项,每头奶牛必须参加一项比 赛,每项比赛也必须有一头奶牛参加.任何一头奶牛可以胜任任何一项比赛,但得分不一样.如果第 i 头奶 ...
- [USACO 5.1.3]乐曲主题
Description 我们用N(1 <= N <=5000)个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,每个数表示钢琴上的一个键.很不幸这种表示旋律的方法忽略了音符的 ...
- Hdu 5595 GTW likes math
题意: 问题描述 某一天,GTW听了数学特级教师金龙鱼的课之后,开始做数学<从自主招生到竞赛>.然而书里的题目太多了,GTW还有很多事情要忙(比如把妹),于是他把那些题目交给了你.每一道题 ...
- bzoj4034[HAOI2015]树上操作 树链剖分+线段树
4034: [HAOI2015]树上操作 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 6163 Solved: 2025[Submit][Stat ...
- C#+HtmlAgilityPack+Dapper走一波爬虫
最近因为公司业务需要,又有机会撸winform了,这次的需求是因为公司有项目申报的这块业务,项目申报前期需要关注政府发布的相关动态信息,政府部门网站过多,人工需要一个一个网站去浏览和查阅,有时候还会遗 ...
- Java Web -【分页功能】详解
分页简介 分页功能在网页中是非常常见的一个功能,其作用也就是将数据分割成多个页面来进行显示. 使用场景: 当取到的数据量达到一定的时候,就需要使用分页来进行数据分割. 当我们不使用分页功能的时候,会面 ...
- struts2中action的class属性值意义
整合了spring就不同了,orz struts2单独使用时action由struts2自己负责创建:与spring集成时,action实例由spring负责创建(依赖注入).这导致在两种情况下str ...
- rabbitMQ权限相关命令
权限相关命令为: (1) 设置用户权限 rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP (2) 查看(指 ...
- Python学习--课本程序练习(周更)
1.绘制正方形螺旋线 import turtle turtle.setup(600,300,200,200) turtle.pensize(1) turtle.color('green') i=0 w ...
- canvas初学 半动态画太极图
可直接复制粘贴运行 <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head&g ...