一道来自华为的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; }