解题思路: 递归(算是吧)

注意:多组数据!!!

#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));
    }
}