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

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值