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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.