gets&puts 读取并修改文章

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013637931/article/details/45152033

本篇文章介绍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 1000
char 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。

展开阅读全文

没有更多推荐了,返回首页