C语言求两个字符集合的交集和并集

编程,从键盘分别输入两个都不多于20个元素的字符集合a和b,计算并输出集合a和b的交集和并集,其中的元素从小到大排列,若交集为空则输出NULL。例如,输入:1a2b3c4... 编程,从键盘分别输入两个都不多于20个元素的
字符集合a和b,计算并输出集合a和b 的交集和并
集,其中的元素从小到大排列,若交集为空则输
出NULL。例如,
输入:1a2b3c4d5@6$7& /* 集合a */
0abc9!@#x246 /* 集合b */
输出:246@abc /* 交集 */
!#$&012345679@abcdx /* 并集 */
输入:54321 /* 集合a */
zxycba /* 集合b */
输出:NULL /* 交集 */
12345abcxyz /* 并集 */
展开
 我来答
随心E谈
2012-05-12 · TA获得超过1009个赞
知道小有建树答主
回答量:491
采纳率:50%
帮助的人:136万
展开全部
int i,count=0,ch1[256]={0},ch2[256]={0};
char s1[20],s2[20];

//统计字符串1的字符情况
for(i=0;i<20&&s1[i]!='\0';i++)
ch1(s1[i])++;
//统计字符串2的字符情况
for(i=0;i<20&&s2[i]!='\0';i++)
ch2(s2[i])++;

//交集
for(i=0;i<256;i++)
if(ch1[i]>0&&ch2[i]>0)
{
putchar(i);
count++;
}
if(count==0)
printf("NULL");
putchar('\n');
//并集
count=0;
for(i=0;i<256;i++)
if(ch1[i]>0&||ch2[i]>0)
{
putchar(i);
count++;
}
if(count==0)
printf("NULL");
putchar('\n');
更多追问追答
追问
能补完吗。
追答
char s1[20],s2[20];
后加入
scanf("%s",s1);
scanf("%s",s1);
就行了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式