广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >如何用c语言求两个字符串的交集
  • 676
分享到

如何用c语言求两个字符串的交集

2023-06-22 07:06:01 676人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关如何用C语言求两个字符串的交集,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。求两个字符串的交集,看似简单,实则需要考虑的细节很多。我的思路:将两个字符串简化,将里面重复的

这期内容当中小编将会给大家带来有关如何用C语言求两个字符串的交集,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

求两个字符串的交集,看似简单,实则需要考虑的细节很多。

我的思路:

将两个字符串简化,将里面重复的字母减少为一个。

拼接两个字符串,借助循环把重复出现两次的字符找出来。

有了思路开始写代码。

一、main()函数

思路:

定义两个储存字符串的数组tt[M],pp[M]

定义指针*p接收fun2() 返回值,输出交集

输入两个字符串(此处注意越界问题)

调用函数

输出交集

#include <stdio.h>#include <string.h>             //用到strcat(),strlen()函数 #define M 50 void fun1(char tt[]);           //将字符串中相同的字母去掉char *fun2(char tt[]);          //将重复的(子集)找出来  int main(){    char tt[M],pp[M];           //定义两个数组,储存字符串    char *p;                    //接受fun2()返回的地址,并输出交集字符串    int i;     gets(tt);                   //abcdef123abc12    gets(pp);                   //acef123ace124    fun1(tt);                   //调用函数    fun1(pp);                               //printf("%s\n",tt);        //供检验使用    //printf("%s\n",pp);        strcat(tt,pp);    //printf("%s\n",tt);    p=fun2(tt);                 //调用函数    for(i=0;*(p+i)!='\0';i++)    {        printf("%c",*(p+i));    //acef123    }     return 0;}

二、fun1()函数

fun1()作用是将字符串中重复的字符只保留一个

思路:

先将重复出现的字符出去第一次出现那个都换成' '(此处为一个空格)

在将字符串数组元素移动,去除' '(空格)

void fun1(char tt[])            //将重复的字符抹掉{    int i,j;    char ch;     for(i=0;i<M;i++)                {        if(tt[i]!=' ')          //确保确定的这一项不是空格        {            ch=tt[i];           //确定第一次出现的字符            for(j=i+1;j<M;j++)  //在他后方寻找            {                if(ch==tt[j])   //遇到一样的                tt[j]=' ';      //用' '替换            }        }    }    for(i=0;i<strlen(tt);i++)    {        if(tt[i]==' ')                  //找到' '位置        {                                           for(j=i;j<strlen(tt)-1;j++) //去除' '            tt[j]=tt[j+1];                          tt[j]='\0';                 //此时最后一项与倒数第二项相同,用'\0'彻底抹除左后一                                                                //项(目的是去除' '字符串缩短)            i--;        }                               //防止连续出现多个' '(假如没有i--,此时tt[i]仍然为'                                                     //'运行下一步为i++,这个空格就被保留下来了)    }}

三、fun2()函数 

fun2()将重复出现的字符挑出来

思路:

找到相同字符,并储存在static aa[M]中(小重点)

返回第一个字符的地址

char *fun2(char tt[])           //确定子集字符串,返回字符串第一个字符的地址{    int i,j,k;    char ch;    static char aa[M];          //静态变量,保证调用函数结束后数组还在    char *p;     k=0;     for(i=0;i<strlen(tt);i++)    {        ch=tt[i];                       //确定第一次出现的字符        for(j=i+1;j<strlen(tt);j++)        {            if(ch==tt[j])               //如果再次出现一个相同的字符将他赋值给aa[M]数组            {                aa[k]=ch;                k++;            }        }    }    aa[k]='\0';                         //最后加上'\0'一来这是个字符串,二来main()函数中作为                                                         //for循环结束条件    p=&aa[0];                           //确定第一个字符的地址     return p;                           //返回地址}

注意;

这个代码任然后缺陷,因为用这个代码求得两个字符串的交集永远不会出现空格。

其他思路推荐:

先在第一个字符串中确定一个字符,在第二个字符串中查找是否存在相同字符串

这条思路特要注意字符串中字符重复出现带来的影响

上述就是小编为大家分享的如何用c语言求两个字符串的交集了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网其他教程频道。

--结束END--

本文标题: 如何用c语言求两个字符串的交集

本文链接: https://www.lsjlt.com/news/303433.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c语言求两个字符串的交集
    目录一、main()函数二、fun1()函数三、fun2()函数 注意;总结求两个字符串的交集,看似简单,实则需要考虑的细节很多。 我的思路: 1.将两个字符串简化,将里面...
    99+
    2022-11-12
  • 如何用c语言求两个字符串的交集
    这期内容当中小编将会给大家带来有关如何用c语言求两个字符串的交集,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。求两个字符串的交集,看似简单,实则需要考虑的细节很多。我的思路:将两个字符串简化,将里面重复的...
    99+
    2023-06-22
  • SQLServer中怎么求两个字符串的交集
    这期内容当中小编将会给大家带来有关SQLServer中怎么求两个字符串的交集,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。使用javascript的数组来计算,代码如下&...
    99+
    2022-10-18
  • c语言中怎么用strcmp比较两个字符串
    在C语言中,可以使用strcmp函数来比较两个字符串。strcmp函数是一个标准库函数,用于比较两个字符串的大小。strcmp函数的...
    99+
    2023-10-10
    c语言
  • c语言连接两个字符串的方法是什么
    在C语言中,连接两个字符串的方法有以下几种:1. 使用strcat函数:strcat函数可以将第二个字符串追加到第一个字符串的末尾。...
    99+
    2023-08-15
    c语言
  • 如何在c语言中求字符串长度并输出
    这期内容当中小编将会给大家带来有关如何在c语言中求字符串长度并输出,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言...
    99+
    2023-06-15
  • c语言如何用scanf输入字符串
    在C语言中,可以使用`scanf`函数来输入字符串。要输入字符串,首先需要声明一个字符数组,然后使用`scanf`函数将输入的字符串...
    99+
    2023-08-25
    c语言 scanf
  • c语言如何删除字符串中的指定字符
    可以使用循环遍历字符串,将不需要删除的字符拷贝到一个新的字符串中,最后将新的字符串赋值给原字符串。以下是一个示例代码:```c#in...
    99+
    2023-08-24
    c语言
  • c语言如何提取字符串中的数字
    在C语言中,可以使用isdigit函数和atoi函数来提取字符串中的数字。isdigit函数用于判断一个字符是否为数字字符,其原型如...
    99+
    2023-09-16
    c语言
  • Oracle如何实现两个逗号分割的字符串以及获取交集、差集
    这篇文章主要介绍了Oracle如何实现两个逗号分割的字符串以及获取交集、差集,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Oracle数据库...
    99+
    2022-10-18
  • C语言中如何求两个矩阵的乘积
    这篇文章将为大家详细讲解有关C语言中如何求两个矩阵的乘积,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。分析在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,矩阵是高等代数...
    99+
    2023-06-25
  • C语言如何利用ASCII码表统计字符串每个字符出现的次数
    目录利用ASCII码表统计字符串每个字符出现的次数我的代码运行正确总结 利用ASCII码表统计字符串每个字符出现的次数 在C语言里面写个能够统计并打印字符串中字符出现次数心...
    99+
    2023-01-28
    C语言 ASCII码 C语言统计字符串 C语言统计字符次数
  • 如何使用C语言实现字符串逆序
    本篇内容介绍了“如何使用C语言实现字符串逆序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!编写一个函数 r...
    99+
    2022-10-19
  • C语言如何使用字符串处理函数
    这篇文章主要介绍了C语言如何使用字符串处理函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。strlen:1.计数器版本:#include<stdio.h>#in...
    99+
    2023-06-22
  • c语言如何去除字符串中的空格
    在C语言中,可以使用字符串处理函数`strcpy`和`isspace`来去除字符串中的空格。具体步骤如下:1. 定义一个新的字符串,...
    99+
    2023-08-16
    c语言
  • c语言如何读取文件中的字符串
    在C语言中,可以使用标准库函数`fscanf`或`fgets`来读取文件中的字符串。1. 使用`fscanf`函数:```c#inc...
    99+
    2023-08-24
    c语言
  • c语言函数如何求两个数的最大值
    目录c语言函数求两个数的最大值c语言​求十个数中的最大值解题思路具体代码总结c语言函数求两个数的最大值 #include <stdio.h> max(int a,int...
    99+
    2022-12-08
    c语言函数 求两个数最大值 c语言求最大值
  • java如何在不用第三个变量的情况下交换两个字符串
    这篇文章给大家分享的是有关java如何在不用第三个变量的情况下交换两个字符串的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如何在不用第三个变量的情况下交换两个字符串这道题就有点意思了,对吧尤其是前提条件,不使用第...
    99+
    2023-06-27
  • c语言如何实现两个值互相交换的函数
    小编给大家分享一下c语言如何实现两个值互相交换的函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!c语言中实现两个值互换的函数。#include <...
    99+
    2023-06-15
  • C语言如何实现翻转字符串中的单词
    目录C语言翻转字符串中的单词另外开辟一个空间,来存放翻转的字符串直接在原数组上进行操作C语言字符串各单词的反转思路代码实现代码编译调试输出C语言翻转字符串中的单词 另外开辟一个空间,...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作