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,你们给的答案我怎么不行啊?一楼的我看不懂了.... 展开
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,你们给的答案我怎么不行啊?一楼的我看不懂了.... 展开
2个回答
展开全部
补充:你直接输入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]);
}
}
}
#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]);
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询