UVA - 494 - Kindergarten Counting Game

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=show_problem&problem=435


题意:

  在输入的字符串中,判断有多少个单词,连续的字母排序组成单词,也就是说,其它非字母的都是分隔符。


解题:直接针对输入的每个字符进行判断,如果是回车或非字母,直接统计单词数量。

  (当然中间要有个iFlagLastLetter值用来记录上一个字符是不是字母)


#include <iostream>

#include <stdio.h>

using namespace std;


int main()
{
	char ch;
	int nCount;
	int iFlagLastLetter;

	nCount = 0;
	iFlagLastLetter = 0;
	while ( (ch = cin.get() ) != EOF )
	{
		if ( ch == '\0' )
		{
			break;
		} // end if
		else
		{
			if ( ch == '\n' )
			{
				if ( iFlagLastLetter == 1 )
				{
					nCount ++;
				} // end if
				cout <<nCount <<endl;
				nCount = 0;
				iFlagLastLetter = 0;
			} // end if
			else
			{
				if ( !isalpha(ch) )
				{
					if ( iFlagLastLetter == 1 )
					{
						nCount++;
					} // end if
					iFlagLastLetter = 0;
				} // end if
				else
				{
					iFlagLastLetter = 1;
				} // end else
			} // end else
		} // end else
	} // end while

	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值