-
将给定字符串中连续出现3次的小写字母替换为改小写字母在字母表中的下一个字母(z变为a),大写字母和其他字符不处理,仍然保留。要求最终输出的字符串中不再存在任何连续出现3次的小写字母。
-
例如字符串”ATRcccert893#45ae”经过处理后应该为”ATRdert893#45ae”
详细描述:
-
接口说明
原型:
int ChangeString(char *pInStr,char *pOutStr)
输入参数:
char *pInStr 输入字符串
输出参数:
char *pOutStr 输出字符串,内存空间已分配好,可直接使用
返回值:
int 0:处理成功 -1:出现异常
限制:
无
举例:
pInStr:jkds*^*(HKEEEklIdddjilfff
pOutStr:jkds*^*(HKEEEklIejilg
#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;
int ChangeString(char *pInStr,char *pOutStr)
{
int len=strlen(pInStr),i,j=0;
char temp[999],c;
bool flag=1;
for (i=0;i<len;i++)
{
if (pInStr[i]>='a' && pInStr[i]<='z' && flag)
{
c=pInStr[i];
if (c==pInStr[i+1] && c==pInStr[i+2])
{
flag=0;
if (c=='z')
{
temp[j]='a';
}
else
temp[j]=++c;
j++;
i=i+2;
}
else
{
temp[j]=pInStr[i];
j++;
}
}
else
{
temp[j]=pInStr[i];
j++;
}
}
temp[j]='\0';
if (flag==1)
{
int k=0,lenth=strlen(temp);
for(k=0;k<=lenth;k++)
{
pOutStr[k]=temp[k];
}
return 0;
}
ChangeString(temp,pOutStr);
}
int main()
{
char input[18]="fffgggATRer5#45ae",output[18]="\0";
int k=ChangeString(input,output);
cout<<"k="<<k<<endl<<output<<endl;
return 0;
}