char* makeFancyString(char* s) {
int size=strlen(s);
char*arr=(char*)malloc(sizeof(char)*size+1);
if(size<3)
{
return s;
}
arr[0]=s[0];
arr[1]=s[1];
int p=2;
for(int j=2;j<size;j++)
{
if(s[j]!=s[j-1]||s[j]!=s[j-2])
{
arr[p]=s[j];
p++;
}
}
arr[p]='\0';
return arr;
}
此代码的细节很多:
1.字符串末尾的\0与空间分配的\0
2.或运算:必须两个全部满足才报错,使用后无需写较长的且语句