11.2

11.2

一、分配空间

最简单的方法是,在声明时显式指明数组的大小:

char name[81];

现在name是一个已分配块(81字节)的地址。还有一种方法是使用C库函数来分配内存

在读取字符串时,scanf()和转换说明%s只能读取一个单词。可是在程序中经常要读取一整行输入,而不仅仅是一个单词。

二、gets()函数经常和 puts()函数配对使用,该函数用于显示字符串,并在末尾添加换行符

过去通常用fgets()来代替gets(),fgets()函数稍微复杂些,在处理输入方面与gets()略有不同

gets_s()函数也可代替gets()。该函数与gets()函数更接近

C11新增的gets_s()函数(可选)和fgets()类似,用一个参数限制读入的字符数

gets_s()与fgets()的区别如下。

gets_s()只从标准输入中读取数据,所以不需要第3个参数。

如果gets_s()读到换行符,会丢弃它而不是储存它

如果gets_s()读到最大字符数都没有读到换行符,会执行以下几步。首先把目标数组中的首字符设置为空字符,读取并丢弃随后的输入直至读到换行符或文件结尾,然后返回空指针。接着,调用依赖实现的“处理函数”(或你选择的其他函数),可能会中止或退出程序

只要输入行未超过最大字符数,gets_s()和gets()几乎一样

三、scanf()函数

scanf()函数返回一个整数值,该值等于scanf()成功读取的项数或EOF

 

posted on 2022-02-08 17:09  ashenxxxx  阅读(142)  评论(0)    收藏  举报