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;
}