gets&puts 读取并修改文章

来源:互联网 发布:石田电子称软件 编辑:程序博客网 时间:2024/06/09 19:55

本篇文章介绍C++中如何使用gets函数和puts函数读取并且输出字符串,进而修改文章内容。

首先我们看一道题目。

题目来源:The 2015 ACM-ICPC School Contest of Chang'an University

题目大意:输入文章中的字母均是大写字母,我们需要按如下规则修改文章:

规则1:The first letter of a sentence must be a upper case.

规则2:The end of a sentence is a character '.'

规则3:Other letters in the essay should be transformed into lower case.

当输入为ACM-ICPC.ACM-ICPC 2015.的时候输出为Acm-icpc.Acm-icpc 2015.

注意:题目中的文章的每个句子之间可能是有空格的,或者是多个空格,也可以有换行等等。

代码如下:

#include <cstdio>#define SIZE 1000char orz[ SIZE + 10 ];int first = 1;int main(){while( gets( orz ) ){for( int i = 0; orz[i]; ++i ){if( orz[i] == '.' ) first = 1;if( orz[i] >= 'A' && orz[i] <= 'Z' ){if( first ){first = 0;continue;}orz[i] += 32;}}puts( orz ); }return 0;}
这个代码可以处理'.'之后出现的第一个大写字母,而且不管中间有多少个空格。

代码中最重要的两个函数就是gets函数和puts函数,都包含在cstdio中。

gets函数:

1.功能:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。

2.返回值:读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错误还是遇到EOF。所以作为while循环的条件时,当读入EOF时会返回NULL指针,可以使循环结束。

puts函数:

1.功能:puts()函数用来向标准输出设备(屏幕)写字符串并换行。

2.返回值:执行成功返回非负数,执行失败返回EOF。

0 0
原创粉丝点击