c语言求两字符数组交集

例如:任意定义两数组charstr1[4],str2[4];charu[]="";//交集放入新的数组inti,j,k;用for(i=0;i<4;i++)for(j=0;... 例如:任意定义两数组 char str1[4],str2[4];
char u[]=" ";//交集放入新的数组
int i,j,k;

for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(str1[i]==str2[j])u[k++]=str1[i];
可以求交集
可是,怎麽能同时求交集时(即把交集元素赋给u时),把交集里的重复元素去掉?在循环体里加IF条件?可以我怎么改都不理想。
再补充:我输入str1为hhhu,str2为uhhh,想u[]={h,u}
这样怎么来啊?
希望大哥们帮我解决哦^_^
再再补充:我被这题快气死啦..
我上面写的k 初值为0,你们给的答案我怎么不行啊?一楼的我看不懂了....
展开
 我来答
Busanhaeng
2009-04-09 · TA获得超过612个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:290万
展开全部
补充:你直接输入8个字符就可以了
#include "stdio.h"
#define M 4
#define N 4
main() {
int i,j,k=-1,n=0,jj=-1;
char a[M],b[N],c[M*N],d,x[M*N];
for(i=0;i<M;i++)
scanf("%c",&a[i]);
scanf("\n",&d);
for(i=0;i<M;i++)
scanf("%c",&b[i]);
for(i=0;i<M;i++){
for(j=0;j<N;j++)
if(a[i]==b[j]){
k++;
c[k]=a[i];
}
}
printf("jiao ji :\n");
for(i=0;i<=k;i++){
n=0;
for(j=i+1;j<=k;j++){
if(c[i]!=c[j]){
n++;}
}
if(n==k-i){
jj++;
x[jj]=c[i];
printf("%c",c[i]);
}
}
}
忘至白葬不情必0T
2009-04-09 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
for(i=0;i<4;i++)
for(j=i;j<4;j++)
if(str1[i]==str2[j])
{
int t;
for(t=0;t<=k;t++)
if(u[t]==str1[i]) break;
if(t>k)
u[k++]=str1[i];
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式