當前位置:編程學習大全網 - 編程軟體 - 任意輸入倆個字符串S1和S2,要求每個字符串中無重復的字符,求兩者的交集,

任意輸入倆個字符串S1和S2,要求每個字符串中無重復的字符,求兩者的交集,

輸入時自動檢查每個字符串內是否有重復,最後顯示交集內容或提示交集為空。

#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;

}

  • 上一篇:八字喜木火適合什麽?八字喜木火如何提升妳的運勢?
  • 下一篇:甘肅小夥學編程。
  • copyright 2024編程學習大全網