解题思路: 递归(算是吧)
注意:多组数据!!!
#include<string.h>
#include<stdlib.h>
char* f(char* a){
char ss[200];
char sss[200];
for(int i = 0 ; i<strlen(a) ; i++){
if( a[i] == 'o' && a[i+1] == 'o'){
sss[0] = '\0';
strncpy(sss,a,i);
sss[i] = '\0';
ss[0] = 'O';
ss[1] = '\0';
strcat(sss,ss);
strcat(sss,a+i+2);
strcpy(a,f(sss));
}
else if(a[i] == 'O' && a[i+1] == 'O'){
sss[0] = '\0';
strncpy(sss,a,i);
sss[i] = '\0';
ss[0] = '\0';
strcat(sss,ss);
strcat(sss,a+i+2);
strcpy(a,f(sss));
}
}
return a;
}
int main()
{
char s[200];
while(scanf("%s",s) != EOF){
printf("%s\n",f(s));
memset(s,'\0',sizeof(s));
}
}