#include <stdio.h>
#include <string.h>
int repeated(char* str)/*檢查字符串內是否有重復的字符,有就返回1,無就返回0*/
{
int i=0, len=strlen(str)-1;
for(i=0; i<len; i++)/*依次查看每個字符在後面是否重復出現*/
if(strchr(str+i+1, str[i]))
return 1;/*壹旦發現就立即返回*/
return 0;
}
int main()
{
int i, len, j=0;
char s1[100], s2[100], s3[100];/*保存兩個字符串和交集串*/
char* s[2]={s1,s2};/*用壹個數組s來管理s1和s2以便在下面用for循環處理*/
for(i=0; i<2; i++){/*依次輸入兩個字符串*/
do{
printf("請輸入第%d個字符串:\n", i+1);
scanf("%s",s[i]);
}while(repeated(s[i])&&printf("串內有重復字符!\n"));/*檢查是否有重復*/
}
len = strlen(s1);
for(i=0; i<len; i++)/*依次查找s1中的每壹個字符是否在s2中存在*/
if(strchr(s2,s1[i]))
s3[j++] = s1[i];/*存在的字符就加入到交集中*/
s3[j] = 0;/*添加字符串結束標記*/
if(j>0)
printf("交集為[%s]\n", s3);
else
printf("交集為空\n");
return 0;
}