将给定字符串中连续出现3次的小写字母替换为改小写字母在字母表中的下一个字母(z变为a),大写字母和其他字符不处理,仍然保留。要求最终输出的字符串中不再存在任何连续出现3次的小写字母。例如字符串”ATRcccert893#45ae”经过处理后应该为”ATRdert893#45ae”
int ChangeString(char *pInStr,char *pOutStr)
{
int i=0;
int c=0;
if(NULL==pInStr || NULL==pOutStr)
return -1;
while(*pInStr != '\0')
{
if(!islower(c=*pInStr))
{
pOutStr[i++] = c;
pInStr++;
}
else
{
while(*(pInStr+1) != '\0' && *(pInStr+1) == c &&
*(pInStr+2) != '\0' && *(pInStr+2) == c)
{
if( 'z'==c)
{
c = 'a';
}
else
{
c += 1;
}
pInStr++;
pInStr++;
}
//retrieve
pOutStr[i++] = c;
pInStr++;
}
}
pOutStr[i] = '\0';
return 0;
}