gets()

C Primer Plus 第11章 字符串和字符串函数 11.2 字符串输入

纵然是瞬间 提交于 2019-11-27 19:29:19
11.2.1 创建存储空间 要做的第一件事是建立一个空间以存放读入的字符串。 最简单的办法就是在声明中明确指出数组的大小: char name[81] ; 现在的name是一个已经分配81字节存储块的地址。另一个方法是使用C库里分配存储空间的函数,这一点会在第12章讨论。 为字符串预留空间后,就可以读取字符串了。C库提供了三个读取字符串的函数:scanf( )、gets( )和fgets( )。我们先讨论最常用的gets( )。 11.2.2 gets( ) 函数 它从系统的标准输入设备(通常是键盘)获取一个字符串。因为字符串没有预定的长度,所以gets( )需要知道何时结束。解决办法是读字符串直到遇到一个换行字符(\n),按回车键可以产生这个字符。它读取换行符(不包括换行符)之前的所有字符,在这些字符后添加一个空字符(\o),然后把这个字符串交给调用它的程序。它将读取换行符并将其丢弃,这样下一次读取就会在新一行开始。 程序清单11.4 name1.c程序 /*name1.c 读取一个名字*/ #include<stdio.h> #define MAX 81 int main(void) { char name[MAX]; /*分配空间*/ printf("Hi,what's your name?\n"); gets(name); /*把字符串放进name数组*/ printf(