【问题描述】
编写函数void fun(char *s,char *t,char *p)将未在字符串s中出现、而在字符串t中出现的字符, 形成一个新的字符串放在p中,p中字符按原字符串中字符顺序排列,但去掉重复字符。
例如: 当s为"12345", t为"8624677"时, p中的字符为: "867";
当s为”good luck”,t为”thank you very much”时,输出:”thanyverm”
#include<stdio.h>
#include<math.h>
void fun(char *s,char *t,char *p)
{
}
int main()
{
char s1[50],s2[50],s3[50];
printf("Input string s:");
gets(s1);
printf("Input string t:");
gets(s2);
fun(s1,s2,s3);
printf("result:");
puts(s3);
return 0;
}
【输入形式】输入两个字符串
【输出形式】输出一个字符串
【样例输入】
Input string s:12346
Input string t:689412356680014
【样例输出】result:8950
代码如下,如有帮助,请采纳一下,谢谢。
#include<stdio.h>
#include <string>
void fun(char *s,char *t,char *p)
{
int lens = strlen(s);
int lent = strlen(t);
int index = 0;
for (int i = 0; i < lent; i++)
{
char c = t[i];
bool b = false;
for (int j = 0; j < lens; j++)
{
if (s[j] == c)
{
b = true;
break;
}
}
//
if (!b)
{
b = false;
for (int j = 0; j < index;j++)
{
if (p[j] == c)
{
b = true;
break;
}
}
if(!b)
{
p[index] = c;
index++;
}
}
}
}
int main()
{
char s1[50] ={0};
char s2[50] ={0};
char s3[50] = {0};
printf("Input string s:");
gets(s1);
printf("Input string t:");
gets(s2);
fun(s1,s2,s3);
printf("result:");
puts(s3);
getchar();
getchar();
return 0;
}
void fun(char *s,char *t,char *p) { int i,j,ms,mt; ms=strlen(s); mt=strlen(t); for(i=0;i { for(j=0;j if(s[i]==t[j]) break; if(j>=mt) *p++=s[i]; } *p='\0'; }