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、思想簡單,但要注意細節。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章