将未在字符串s中出现而在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符?

60.
编程题
将未在字符串s中出现而在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符。
测试数据:
s:ABCDE, t:BDFGG
运行结果:FGG
请认真测试程序的正确性。将源代码以文本方式提交,不要直接提交文件。
【算法提示】
设计函数void fun(char *s, char *t, char *u)实现要求的功能,函数以字符指针作为参数,通过指针移动进行字符比较:
设置两个字符指针p和q,p指针指向t串,q指针指向s串;通过移动指针p和q,将t串中的一个字母与s中的每个字母进行比较,若有相同的,则中断,再看t中的下一个,直到最后都没有相同的,放入u中。

问题解决的话,请点下采纳

#include <stdio.h>

void fun(char *s, char *t, char *u)
{
    int k = 0;
    for (int i = 0; t[i]; i++)
    {
        int flag = 0;
        for (int j = 0; s[j]; j++)
        {
            if (t[i] == s[j])
            {
                flag = 1;
                break;
            }
        }
        if (!flag) u[k++] = t[i];
    }
    u[k] = 0;
}

int main()
{
    char *s = "ABCDE";
    char *t = "BDFGG";
    char u[100];
    fun(s,t,u);
    printf("%s\n", u);
    return 0;
}

您莫非就是传说中的彭老师的学生?

#include
void fun(char *s, char *t, char *u)
{
char *p=s;
char *q=t;
char *m=u;
for(;*q!='\0';*q++)
{
p=s;
for(;*p!='\0';*p++)
if (*q==*p)
break;
if (*p=='\0')
{
*m=*q;
*m++;
}
}
}
int main()
{
int i=0;
char s[80],t[80],u[160]={0};
printf("输入第一个字符串:");
gets(s);
printf("输入第二个字符串:");
gets(t);
fun(s,t,u);
for(i=0;i<160;i++)
{
if(u[i]==0)
break;
else
printf("%c",u[i]);
}
return 0;
}