大一C语言字符位置交换

问题遇到的现象和发生背景

img

我的解答思路和尝试过的方法
#include<stdio.h>
#include<string.h>
int main()
{
    char a[100],t[100],h[100];
    int n,i,j,v,m,c;
    while(gets(a)!=NULL){
        n=strlen(a);
        for(i=0;i<n;i++){
            m=i;
            c=i;
            if(a[i]=='o'){
                a[i]='0';
                for(j=0;j<i;j++){
                    t[j]=a[j];
                }
                for(j=0;j<n-i-1;j++){
                    h[j]=a[++m];
                }
                for(j=0;j<n-i-1;j++){
                    a[j]=h[j];
                }
                for(j=0;j<i;j++){
                    a[(m++)-2]=t[j];
                }
                n=strlen(a);
                i=0;
            }
        }
        n=strlen(a);
        for(j=0;j<n-1;j++){
            if(a[j]!='0')
            printf("%c",a[j]);
        }
        printf("\n");
    }
    return 0;
}

想了一天了,写不出来

我想要达到的结果

不用指针