gets和puts

C Primer Plus总结
在读取字符串时,scanf()和转换说明%s只能读取一个单词。可是在程序
中经常要读取一整行输入,而不仅仅是一个单词。许多年前,gets()函数就
用于处理这种情况。gets()函数简单易用,它读取整行输入,直至遇到换行
符,然后丢弃换行符,储存其余字符,并在这些字符的末尾添加一个空字符
使其成为一个 C 字符串。它经常和 puts()函数配对使用,该函数用于显示字
符串,并在末尾添加换行符。
缺点:
gets()函数只知道数组的开始处,并不知道数组中有多少个元
素。如果输入的字符串过长,会导致缓冲区溢出(buffer overflow),即多
余的字符超出了指定的目标空间。如果这些多余的字符只是占用了尚未使用
的内存,就不会立即出现问题;如果它们擦写掉程序中的其他数据,会导致
程序异常中止;

#include<stdio.h>
#define SIZE 81
int main() {
  char words[SIZE];
  puts("Enter a string, please.");
  gets(words);
  printf("Your string twice:\n");
  printf("%s\n", words);
  puts(words);
  puts("Done");
  return 0;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值