用指针的形式将字符串中的*全部移动到尾部

字符串s中只能存入字母和,利用指针的方式将s中的全部移动到字母的尾部。例如s中输入* * abc * de,处理后输出s为abcde * * * * *。下面给出主函数,需要写出fun函数。要求用指针的形式,不用下标的形式。

void main()

{

char s[50];

scanf("%s",s);

fun(s);

printf("%s",s);

}

#include <stdio.h>

void fun1(char s[]);         //函数申明

int main()
{
    char s[50];
    printf("输入字符串\n");
    scanf("%s",s);
    fun(s);
    printf("排序后\n");
    printf("%s",s);
    return 0;
}


void fun(char s[])
{
    char t1[50],t2[50];                  
    int m=0,n=0,i;                        //m统计数字个数, //n统计字母个数
    for(i=0;s[i]!='\0';i++)
        if(s[i]=='*')
            t1[m++]='*';
        else t2[n++]=s[i];

    t1[m]='\0';                          //字符串结束符
    t2[n]='\0';

    for(i=0;i<n;i++)                   //将数组t1,t2合并到数组s
        s[i]=t2[i];
    for(i=0;i<m;i++)
        s[n+i]=t1[i];
}