6、实现字符串的 A-(A and B)

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、思想简单,但要注意细节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值