《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的索引值.你需要将这个词作为一个参数插入到圆括号之间.通过尝试和出错的过程中,找到完整的句子中包含这个词的切片. 解题思路: 用两个集合,一 ...
随机推荐
- Java开发词汇
Java基础常见英语词汇(70个) OO: object-oriented ,面向对象 OOP: object-oriented programming,面向对象编程 JDK:Java develop ...
- unity更改c#文件名的小tip
今天偶然知道了一个在Unity中更改代码文件名的小技巧--最好先在Unity的project视图里找到文件,改完后再去visual studio等代码编辑器里改里面的类名. 以前都没注意,想起来要改某 ...
- 2.面向对象基础-01Java类和对象
写在前面: (1)编程语言的发展(人越来越容易理解): 机器语言 汇编语言 高级语言-面向过程 高级语言-面向对象 (2)面向对象的特点: 封装性 继承性 多态性 01Java类和对象 对象:属性(静 ...
- python之自动化连连看脚本-第一关不动-小记
(如想转载,请联系博主或贴上本博地址) 仅供学习python之用,勿用做商业用途.运行环境为1920*1080屏幕,python3.7,win7,谷歌浏览器版本 75.0.3770.100. 参考ht ...
- C#重点语法——反射
------------恢复内容开始------------ 一.含义 反射是指访问,检测或修改程序代码本身状态或行为的一种技术. 举例: 官方代码继承了IReflect ------------恢复 ...
- MAC下使用Wireshark调试chrome浏览器的HTTP/2流量
1.设置环境变量 mkdir ~/tls && touch ~/tls/sslkeylog.log #zsh echo "\nexport SSLKEYLOGFILE=~/t ...
- windows下使用Wireshark调试chrome浏览器的HTTP/2流量
1.在Wireshark官网(https://www.wireshark.org/#download)下载对应的Wireshark安装包,进行安装 2.增加系统环境变量设置(计算机 -- 右键 -- ...
- 取出预训练模型中间层的输出(pytorch)
1 遍历子模块直接提取 对于简单的模型,可以采用直接遍历子模块的方法,取出相应name模块的输出,不对模型做任何改动.该方法的缺点在于,只能得到其子模块的输出,而对于使用nn.Sequensial() ...
- 对于实现上一篇遇到的问题——MyBatis+增删改查(已解决)
问题一:该Http不支持Get/Post方法 我根据网上的解决方法将Get和Post的位置来回换,还是不停报错: 后来偶然间看到一个博主发的"你的代码写在Get或者Post里面,就将没写代码 ...
- MyBatisPlus 整合 SpringBoot 遇见的问题(一)
[异常]:UnsatisfiedDependencyException: Error creating bean with name 'xxx[类]': Unsatisfied dependency ...