满意答案

ibox5

2019.05.05

采纳率:54%    等级:11

已帮助:8963人

#include

#include

#include

#define ARR_LEN 255/*数组长度上限*/

#define elemType char/* 集合元素数据类型 */

/* 集合数据结构 */

typedef struct set {

elemType data[ARR_LEN];

int length;

} set;

/* 初始化集合 */

void initSet (set *S) {

S->length = 0;

}

/* 交集 */

/* A与B的交集(A∩B):既属于A又属于B的元素构成的集合 */

int setIntersection (set A, set B, set *dest) {

int i = 0, j = 0, k = 0;

dest->length = 0;

for (i=0; i

for (j=0; j

if (A.data[i] == B.data[j]) { /* 既属于A又属于B的元素,存入dest */

dest->data[k] = A.data[i];

k++;

}

}

}

dest->length = k;

if (dest->length)

return 1;

else

return 0;

}

/* 并集 */

/* A与B的并集(A∪B):A与B所有元素构成的集合 */

int setUnion (set A, set B, set *dest) {

int i = 0, j = 0, k = 0;

dest->length = 0;

for (i=0; i

for (j=0; j

if (A.data[i] == B.data[j]) /* 既属于A又属于B的元素,跳过 */

break;

}

if (j == B.length) { /* 属于A但不属于B的元素,存入dest */

dest->data[k] = A.data[i];

k++;

}

}

for (j=0; j

dest->data[k] = B.data[j];

k++;

}

dest->length = k;

if (dest->length)

return 1;

else

return 0;

}

/* 补集 */

/* B在A中的相对补集(A\B):属于A但不属于B的元素构成的集合 */

int setComplement (set A, set B, set *dest) {

int i = 0, j = 0, k = 0;

dest->length = 0;

for (i=0; i

for (j=0; j

if (A.data[i] == B.data[j]) /* 既属于A又属于B的元素,跳过 */

break;

}

if (j == B.length) { /* 属于A但不属于B的元素,存入dest */

dest->data[k] = A.data[i];

k++;

}

}

dest->length = k;

if (dest->length)

return 1;

else

return 0;

}

/* 打印集合内容 */

int printSet (set S) {

int i;

if (S.length == 0) {

puts ("The set is empty! ");

return 0;

}

for (i=0; i

printf ("%c", S.data[i]);

putchar ('\n');

return 1;

}

int main (void) {

set A, B;

set AIB, AUB, ACB; /* 交集、并集、补集 */

initSet (&A); initSet (&B);

initSet (&AIB); initSet (&AUB); initSet (&ACB);

strcpy (A.data, "123");

A.length = strlen (A.data);

strcpy (B.data, "4532");

B.length = strlen (B.data);

printf ("A:\t");

printSet (A);

printf ("B:\t");

printSet (B);

putchar ('\n');

printf ("A∩B:\t");

setIntersection (A, B, &AIB);

printSet (AIB);

printf ("A∪B:\t");

setUnion (A, B, &AUB);

printSet (AUB);

printf ("A\B:\t");

setComplement (A, B, &ACB);

printSet (ACB);

getch (); /*屏幕暂留*/

return 0;

}

00分享举报

c语言求两个字符串的交集,用c语言求两个集合的交集,并集,差集相关推荐

  1. PHP两个字符串比较(人为出错),两字符串类型和数据表面相等,但strcmp()结果不为0...

    PHP中,比较两个字符串是否相等用:strcmp(): PHP strcmp() 函数 PHP String 函数 定义和用法 strcmp() 函数比较两个字符串. 该函数返回: 0 - 如果两个字 ...

  2. c语言用指针分离字符串数字与字符,c语言实验报告,指针的应用分别输出字符串中的数字和其他字符(共10篇).docx...

    c语言实验报告,指针的应用分别输出字符串中的数字和其他字符(共10篇) C语言程序设计实验报告 1实验目的 ⑴掌握指针的概念,会定义和使用指针变量: ⑵能正确使用变量的指针和指向变量的指针变量: ⑶能 ...

  3. c语言固定长度的字符串,【分享】C语言动态长度字符串

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多朋友都用惯了高级语言的字符串变量,就是定义一个字符串变量,直接可以赋值,但在C语言里没有字符串变量这样的概念,只有字符数组,因此,只能定义一个固定数组 ...

  4. c++如何判断两个字符串是否相同?_链表 | 如何判断两个单链表(无环)是否交叉...

    如何判断两个单链表(无环)是否交叉 单链表相交指的是两个链表存在完全重合的部分,如下图所示 在上图中,这两个链表相交于结点5,要求判断两个链表是否相交,如果相交,找出相交处的结点. 分析 Hash法 ...

  5. c语言16进制字符串型转整形,c语言htoi() --将16进制数组成的字符串转换成整型

    k&r习题,将16进制数(可选0x或0X前缀)组成的字符串转换成等价的整型,写了一个: /* htoi.c * transform hex to decimal * * compile wit ...

  6. c语言简单选择对字符串数组排序,简单了解C语言中直接插入排序与直接选择排序实现...

    直接插入排序基本思路: 1. 从a[0]开始,也就是从1个元素开始是有序的,a[1]~a[n-1]是无序的. 2. 从a[1]开始并入前面有序的数组,直到n-1. #include #define N ...

  7. c语言比较两个字符串是否相等strcmp

    c语言提供了几个标准库函数,可以比较两个字符串是否相同.以下是用strcmp()函数比较字符串的一个例子: #include <stdio.h> #include <string.h ...

  8. C语言字符串判断是否与已知相同,C语言中判断两个字符串是否相同的方法

    C语言中判断两个字符串是否相同的方法 C语言提供了几个标准库函数,可以比较两个字符串是否相同.以下是用strcmp()函数比较字符串的一个例子: #include #include void main ...

  9. c语言中空格字符怎么表示_C语言中常用的字符串操作函数

    作者:陈太浪 出处:https://home.cnblogs.com/u/TomHe789/ C语言中提供了许多的字符串操作函数,常见的字符串操作函数有以下几种: 1.求字符串长度的函数 原型函数:s ...

  10. c语言数字储存于变量,用C语言写中文数字字符串转数值变量

    用C语言写中文数字字符串转数值变量 C语言写中文数字字符转数值变量 最近突发奇想:程序中要是输入一串中文数字,如"十万"就能自动识别转换成数值100000储存到变量里该多好. 也许 ...

最新文章

  1. Go各时间字符串使用详解
  2. [转帖]不要迷失在技术的海洋中
  3. 我遇到的CocoaPods的问题(也许后期会解决,持续更新)
  4. Taro+react开发(40)封装组件1
  5. leetcode - 538. 把二叉搜索树转换为累加树
  6. mifi随身wifi选购
  7. ARM指令集详解(超详细!带实例!)
  8. matlab 定义离散函数,matlab离散点拟合函数
  9. 【mosek.fusion】Primal SVM
  10. 苹果电脑如何改id?这篇文章帮你搞定
  11. Cordova插件之跳转第三方app
  12. 建设工程项目全寿命周期管理是指_建设工程全寿命周期的概述
  13. Go语言:运行报错cannot load ... malformed module path “...“: missing dot in first path element解决办法
  14. 飞桨AI Studio之加州房价预测——机器学习的Hello world
  15. python 绘制q-q图代码
  16. 一致 先验分布 后验分布_先验概率、似然函数与后验概率
  17. 笔记 | gamma分布
  18. python爬b站评论_一个简单的爬取b站up下所有视频的所有评论信息的爬虫
  19. 微波中继通信中的天馈线系统及检测工具——TFN天馈线测试仪(驻波比测试仪)100系列
  20. 家里宽带都200M了,为什么网速这么慢?简单设置一下

热门文章

  1. Ubuntu16.04LTS安装搜狗拼音
  2. 关于给hexo博客增加视频vlog页面(主要引入哔哩哔哩视频)
  3. 多个绝对值相加求最大值问题_多个绝对值求和型函数最值问题的求解方法
  4. snap install cloudcompare碰到问题
  5. 计算机等级考试陕西省考点名单及报考指南
  6. cym : BaseQuickAdapter.setOnItemChildClickListener失效点击没反应
  7. Android 自定义相机黑屏
  8. 【uni-app】uni-app实现手写签名效果:
  9. python画五角星-Python的画五角星
  10. 163vip邮箱登录,网易邮箱如何登录?vip163邮箱怎么登陆?