#include <stdio.h>
#include <stdlib.h>
// A2B2C2A2
void deal( const char *pIn, char *pOut)
{
const char *tmpIn;
char *tmpOut;
char count; // 字符计数器
char preCh; // 前一个字符
char curCh; // 当前字符
tmpIn = pIn;
tmpOut = pOut;
count = '1';
preCh = *tmpIn;
while (*tmpIn++)
{
curCh = *tmpIn;
// 如果前一个字符与当前字符相等,则计数加1
if (preCh == curCh)
{
count++;
}
else
{// 否则,说明出现不同字符,需要输出前一个字符及个数
// 这里是关键,保证是一个字符串!!!
*tmpOut++ = preCh;
*tmpOut++ = count;
*tmpOut = 0;
// 为下一个字符处理做准备
count = '1';
preCh = curCh;
}
}
}
int main(void)
{
char *pIn = "A";
char arr[20];
deal(pIn, arr);
printf("%s\n", arr);
return 0;
}