一道来自华为的C机试题目

题目是这样的

求一个字符串中连续字母的个数

比如I have a book. : 1

I have a dog. : 0

I haavee aa dogg : 4


#include <windows.h>
#include <iostream>

using namespace std;

void GetDupStringCount( const char* pStr, int &iOut )
{
	if( !pStr )
		return;

	int iLen = strlen( pStr );

	if( !iLen )
		return;

	char cValue = *pStr;
	int iNumCount = 0;//重复个数

	iOut = 0;//设置为0
	int iIndex = 0;//当前索引

	while( iLen-- )
	{
		if( !( ( cValue >= 'a' && cValue <= 'z' ) || ( cValue >= 'A' && cValue <= 'Z' ) ) )
		{
			cValue = *( pStr + ++iIndex );

			iNumCount = 0;
			
			continue;
		}

		if( cValue == *( pStr + iIndex ) )
		{
			iNumCount++;
		}
		else
		{
			cValue = *( pStr + iIndex );

			if( iNumCount > 1 )
			{
				iOut++;
				iNumCount = 0;
				--iIndex;
			}

		}

		iIndex++;

	}
}


int main( int argc, char* argv[] )
{
	char szStr[] = " I haveee  a book!   ";

	int iOut = -1;

	GetDupStringCount( szStr, iOut );

	cout << iOut << endl;

	return 0;
}


原文地址:https://www.cnblogs.com/riskyer/p/3246605.html