《C和指针》第一章
1 第一章
C标准库中几个常用的IO函数
int puts(void *str):
从str中提取字符直到遇到第一个'\0'为止,将这些字符串加上'\n'后发送给stdout。
int main(void)
{
char input[100];
input[0] = 'a';
input[1] = 'b';
input[2] = 'c';
input[3] = '\0';
input[4] = 'd';
puts(input);
return 0;
}
会返回 abc
char* gets(void *str):
从stdin中读取一行,直到遇见换行符为止,gets函数会将换行符'\n'替换为'\0'写入到传入的指针中;
请注意gets函数在将字符写入数组中时并不会检查数组是否越界,如果字符个数大于数组长度,这可能会带来一些不可预料的后果,超出的部分会写入到内存中数组之后的位置,这个位置有可能是下一个指令的地址,有可能是其他局部变量,修改他们会带来麻烦,所以谨慎使用。
c11中废弃了gets函数,可以用更安全的fgets来实现同样的功能。
int scanf(const char *restrict, ...):
scanf用法类似于printf,不同的是出第一个参数之外,其它参数表示从stdin写入的地址,应当是一个指针类型。
scanf("%d",&num[1]),他会跳过前面的空格,直到遇到第一个空格表示结束,将结果存处在对应的地址上 。
char* strncpy(char *dest,char *src,int n):
从源指针src复制n个元素到dest中 。
char*strcpy(char *dest,char *src):
将源指针src中的字符包括'\0'复制到dest中,此函数并不会检查dest是否能够容纳得下,因此需要保证dest足够大 。
int getchar(void):
从标准输入stdin中获取一个字符,常规来说返回值应该是char,事实上返回值是int类型是为了保证读取到的EOF结束符也能正常返回,EOF在stdio.h被定义,值为-1。
#ifndef EOF
# define EOF (-1)
#endif
这里应当注意不同的平台char类型所表示的范围不同,ARM体系,char是不带符号的,取值范围0到255。而一些其他的平台char的范围就可能是-128到127。因此考虑兼容性,就不能把EOF赋值给一个char类型,这可能会导致错误,我觉得getchar应该是考虑到这个原因才这样设计的。
《C和指针》第一章的更多相关文章
- 流畅的python学习笔记:第一章
这一章中作者简要的介绍了python数据模型,主要是python的一些特殊方法.比如__len__, __getitem__. 并用一个纸牌的程序来讲解了这些方法 首先介绍下Tuple和nametup ...
- Python之旅_第一章Python入门
一.编程语言分类 1.机器语言:即计算机能听懂的二进制语言,0000 0001,直接操控硬件: 2.汇编语言:简写的英文标识符代替二进制语言,本质同样是直接操控硬件: 3.高级语言:用更贴近人类的语言 ...
- 【Python自然语言处理】第一章学习笔记——搜索文本、计数统计和字符串链表
这本书主要是基于Python和一个自然语言工具包(Natural Language Toolkit, NLTK)的开源库进行讲解 NLTK 介绍:NLTK是一个构建Python程序以处理人类语言数据的 ...
- python 机器学习基础教程——第一章,引言
https://www.cnblogs.com/HolyShine/p/10819831.html # from sklearn.datasets import load_iris import nu ...
- 《Python基础教程》第一章:基础知识
如果希望只执行普通的除法,可以在程序前加上以下语句:from __future__ import division.还有另外一个方法,如果通过命令行运行Python, 可以使用命令开关-Qnew.此时 ...
- Python核心编程2第一章课后练习
1-1 在windows下的安装方法在网上下载python2.7直接安装到C盘1)在系统变量中找到path. 2)编辑path值,添加你安装的python路径,C:\Python27. 3)检验pyt ...
- python cookbook学习笔记 第一章 文本(1)
1.1每次处理一个字符(即每次处理一个字符的方式处理字符串) print list('theString') #方法一,转列表 结果:['t', 'h', 'e', 'S', 't', 'r', 'i ...
- Python基础教程笔记 第一章
/ 表示整除,当导入_future_模块中的version时,/ 表示正常的的除法, 此时可用//表示整除,不论数字是整型还是浮点型,都可以用//表示整除. ** 表示幂次方 例如 2**3 ...
- python cookbook学习笔记 第一章 文本(2)
1.6合并字符串 ka=list('kaluoc') #字符串转成字符串列表 print ''.join(ka) #大量的字符串相连,join是最高效的 print '%s%s something % ...
- 《Python自然语言处理》第一章-练习17
问题描述: 使用text9.index()查找词sunset的索引值.你需要将这个词作为一个参数插入到圆括号之间.通过尝试和出错的过程中,找到完整的句子中包含这个词的切片. 解题思路: 用两个集合,一 ...
随机推荐
- jmeter--负载测试
负载测试 1. jmeter插件处理 2. 下载负载测试计划所需要插件 3. 负载测试计划 4. 波浪形的测试计划--测试服务器的稳定性 一般用于测试稳定的场景测试(有规律的活动/场景/接口请求等等, ...
- centos安装k8s
1.确保每台机器上有docker http://get.daocloud.io/#install-docker 2.关闭 每台机器上的swap,selinux swapoff -a setenforc ...
- CH573 CH582 CH579蓝牙主机(Central)例程讲解一(主机工作流程)
蓝牙主机,顾名思义,就是一个蓝牙主设备,与从机建立连接进行通信,可以接收从机通知,也可以给从机发送信息,可将Central例程和Peripheral例程结合使用. 蓝牙主机例程的工作流程大致如下: 一 ...
- HBase启动HMaster闪退
1.问题描述 (1)HBase启动 [Hadoop@master conf]$ start-hbase.sh SLF4J: Class path contains multiple SLF4J bin ...
- 制作可以显示GIF动图的activeX 控件
因为工作需要,我需要一个可以显示gif 动图的控件,用来在VBS中显示动图,结果找了半天发现根本没有这样的控件,所以只能搜集资料自己来制作一个. 下面记录一下步骤: 1. 下载 PictureEx.h ...
- Servlet和Maven项目
Servlet执行流程 通过默认端口号访问到Tomcat服务器 通过类名访问到对应的项目 通过自定义的相应路径,访问到注释中的同名路径 即为执行流程 相应的Servlet对象由Tomcat服务器创建, ...
- 性能的极致,Rust的加持,Zed-Dev编辑器快速搭建Python3.10开发环境
快就一个字,甚至比以快著称于世的Sublime 4编辑器都快,这就是Zed.dev编辑器.其底层由 Rust 编写,比基于Electron技术微软开源的编辑器VSCode快一倍有余,性能上无出其右,同 ...
- 干货来袭!3天0基础Python实战项目快速学会人工智能必学数学基础全套(含源码)(第3天)概率分析篇:条件概率、全概率与贝叶斯公式
第1天:线性代数篇:矩阵.向量.实战编程 第2天:微积分篇:极限与导数.梯度下降.积分.实战编程 第3天:概率分析篇:条件概率与全概率.贝叶斯公式.实战项目 目录 前言 一.概率与机器学习 1.1 概 ...
- 每次SSH执行完都会关闭通道,返回目录,如果想一次执行多步操作,需要多条命令才能达到目的时,用;分割操作指令,一并导入执行
每次SSH执行完都会关闭通道,返回目录,如果想一次执行多步操作,需要多条命令才能达到目的时,用:分割操作指令,一并导入执行: 例如: self.execmd='cd ../tmp/log/;pwd;t ...
- Agora Flat:在线教室的开源初体验
开发者其实很多时候都非常向往开源,开源领域的大佬也特别多,我们谈不上有多资深,也是一边探索一边做.同时,也希望可以借这次机会把我们摸索到的一些经验分享给大家. 01 Flat 是什么 Flat 是一个 ...