1、源程序
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void fun(char *s,char *t,char *u)
{
int i,j,k,sl,tl,ul=0;
sl=strlen(s);
tl=strlen(t);
for(i=0;i<tl;i++) //以t为基准进行扫描
{
for(j=0;j<sl;j++)
if(s[j]==t[i]) break; //有相同的字符,进行下一轮的探寻
if(j==sl) //说明扫描已完成,t的当前字符在s中没有相同的
{
for(k=0;k<ul;k++)
if(t[i]==u[k]) break; //u中已经有了这个字符,那就踏过
if(k==ul)
u[ul++]=t[i]; //储存这个字符
}//if
}//for
u[ul]='\0';
}
int main()
{
char s[100],t[100],u[100];
printf("input the two string:\n");
scanf("%s%s",s,t);
fun(s,t,u);
printf("the result is:%s\n",u);
//getch();
}
2、以其中一个集合为基准进行扫描,不在其中一个集合而在另个一个集合中的元素则进行输出。
本程序忽略了相同元素。也可以不忽略,则如下程序所示:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void fun(char *s,char *t,char *u)
{
int i,j,k,sl,tl,ul=0;
sl=strlen(s);
tl=strlen(t);
for(i=0;i<tl;i++) //以t为基准进行扫描
{
for(j=0;j<sl;j++)
if(s[j]==t[i]) break; //有相同的字符,进行下一轮的探寻
if(j==sl) //说明扫描已完成,t的当前字符在s中没有相同的
{
//for(k=0;k<ul;k++)
//if(t[i]==u[k]) break; //u中已经有了这个字符,那就踏过
//if(k==ul)
u[ul++]=t[i]; //储存这个字符
}//if
}//for
u[ul]='\0';
}
int main()
{
char s[100],t[100],u[100];
printf("input the two string:\n");
scanf("%s%s",s,t);
fun(s,t,u);
printf("the result is:%s\n",u);
//getch();
}
3、思想简单,但要注意细节。
6、实现字符串的 A-(A and B)
最新推荐文章于 2024-01-22 10:45:00 发布