比较两个字符串中的单词

2023-12-25

我做了两根弦。用户可以同时填写它们。

char text[200];
char text2[200];  

我需要从两个字符串中找到相似的单词。例如,

Text=我一生都在这里

Text2=他们来这里是为了赢得我们所有人

我需要编程找到类似的单词,如“这里”、“全部”。 我尝试过这样的操作,但没有找到所有的单词。

if(strstr(text,text2) != NULL)

然后 printf 但我认为这不是正确的事情。


我想这就是你想要的:

char text[] = "I am here for all my life";
char text2[] = "They are here to win us all";

char *word = strtok(text, " ");

while (word != NULL) {
    if (strstr(text2, word)) {
        /* Match found */
        printf("Match: %s\n", word);
    }
    word = strtok(NULL, " ");
}

It uses strtok()逐字阅读句子,并且strstr()在另一个句子中搜索相应的单词。请注意,这不是很有效,如果您有大量数据,则必须考虑更智能的算法。

UPDATE:

由于您不想匹配嵌入的单词,strstr()对你没有太大帮助。而不是使用strstr(),你必须使用自定义函数。像这样的事情:

#include <ctype.h>
int searchword(char *text, char *word) {
    int i;

    while (*text != '\0') {
        while (isspace((unsigned char) *text))
            text++;
        for (i = 0; *text == word[i] && *text != '\0'; text++, i++);
        if ((isspace((unsigned char) *text) || *text == '\0') && word[i] == '\0')
            return 1;
        while (!isspace((unsigned char) *text) && *text != '\0')
            text++;
    }

    return 0;
}

其他代码保持不变,但替换为strstr()通过调用这个新函数:

char text[] = "I am here for all my life";
char text2[] = "They are here to win us all";

char *word = strtok(text, " ");

while (word != NULL) {
    if (searchword(text2, word)) {
        /* Match found */
        printf("Match: %s\n", word);
    }
    word = strtok(NULL, " ");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

比较两个字符串中的单词 的相关文章

随机推荐

  • 检查蓝牙状态 - Swift 4

    我在 Xcode 中遇到蓝牙问题 我找不到关于如何检查蓝牙是否打开的好解决方案 我想要的就是这个 我在网上搜索了一些解决方案 但没有任何对我有用 关于如何检查蓝牙有什么想法吗 我导入了 CoreBluetooth 类并编写了这行代码 if
  • 如何从 Swift 中的字符串中删除引号?

    我正在尝试删除 Swift 中的引号String就像是 Hello 这样斯威夫特String只是 Hello 你可以简单地使用 Swift 1 var str String Hello print str Hello print str s
  • 角度4-在一个打开的选项卡中注销时在所有选项卡中自动注销

    我想在一个打开的选项卡中注销时自动从所有打开的选项卡中注销 我在登录时将 jwt 令牌设置为 localStorage 并在注销时删除该令牌 如何使用存储事件从所有打开的选项卡中注销 您可以在存储上添加事件侦听器 如下所示 window a
  • 如何在java中生成XML(以字符串表示形式)

    我定义了一个java类 但只需要将该类的一些字段输出到XML中 返回的类型必须是 String 我首先选择了使用 StringBuffer 的最简单方法 但是 当我尝试处理输出字符串表示时 它失败了 我认为这很可能是因为输入中有些字符没有以
  • 在C中循环中重新声明数组

    当循环重复时 在循环中声明的数组不会设置为零吗 我有一个数组并以这种方式使用它 while i
  • C++0x 草案中的一点:n3290

    N3290 ISO 标准草案 3 4 1 12 中的一点 在查找中使用的名称期间常量表达式 of an 枚举数定义 之前声明的枚举器枚举的可见 并隐藏在包含该枚举的块 类或命名空间范围中声明的实体的名称枚举说明符 这是添加的新点 任何人都可
  • HTML5 视频:检测时间线的拖动

    我想知道是否有一种完全可靠的方法可以知道用户何时拖动 HTML5 视频的时间线 到目前为止 我一直绑定到 timeUpdate 但尚不清楚 currentTime 是否由于拖动而增加 或者只是由于视频播放而增加 谢谢 我知道MediaEle
  • H2数据库从1.4.200升级到2.0.204后集成测试出现问题

    最近我升级了H2数据库在我们的SpringBoot 2 5 8来自版本的项目1 4 200 to 2 0 204 它仅用于测试目的 对于生产 我们使用PostgreSQL 12 9 好像升级后有些词变成了关键词H2数据库例如 day val
  • 查询生成器/DQL 不适用于 INNER JOIN - 语法问题

    我知道我这里有语法问题 但我无法弄清楚 我正在尝试对 5 个表进行 SELECT 和 INNER JOIN 但 Symfony 抱怨 JOIN 中的实体在定义之前就被使用了 实际错误如下 Semantical Error line 0 co
  • symfony2 学说 expr 子查询:错误:参数号无效

    试图获得用户喜欢的状态 public function getLikedStatuses User user qb this gt em gt createQueryBuilder qb gt select s id gt from Wal
  • 匹配列表中至少两个单词的正则表达式

    我有一个单词列表 foo bar baz 我想编写一个正则表达式来匹配至少包含其中两个的字符串 例如 foo baz 应该匹配同时 ba foo z 不应该 显而易见的解决方案 foo bar baz foo bar baz 有效 但我觉得
  • JCL 错误 - “$HASP165 IBMUSERW ENDED AT SVSCJES2 - JCL ERROR CN(INTERNAL)”

    我正在尝试使用实用程序 DFHWS2LS 创建 CICS Web 服务请求程序 IBM 红皮书或指南中提到的第一步是在 JCL 中运行它 我在提交 JCL 时遇到了这个问题 我做错事了 无法弄清楚什么 任何有关此问题的帮助将不胜感激 IBM
  • 让 onClick 事件每次点击时执行不同的操作?

    我的表格中有 3 列 每列顶部都有一些文本 下面有一个图像 我拥有这样的功能 当有人单击 3 列之一中的图像时 它会放大该列 并使用 onClick 事件删除其他列 但是 我希望当我第二次单击图像时 它会带回其他列 我遇到的问题是弄清楚如何
  • 一对多 SVM 中的 10 倍交叉验证(使用 LibSVM)

    我想在我的系统中进行 10 倍交叉验证一对一 支持向量机 http en wikipedia org wiki Support vector machineMATLAB 中的分类 我试图以某种方式混合这两个相关的答案 libsvm 中的多类
  • 添加行时如何为 Angular ui-grid 设置动画

    我有一个 Angular UI 网格元素 我定期在数据数组的前面添加新项目 我一次只添加一些 例如 1 到 5 个新项目 我希望 UI 网格能够为添加的新行添加动画效果 现在 行会立即添加 这使得它变得紧张 我想要将新行添加到动画中 以便
  • 如何将两个向量相乘并得到一个矩阵?

    在numpy运算中 我有两个向量 假设向量A是4X1 向量B是1X5 如果我执行AXB 它应该产生一个大小为4X5的矩阵 但我尝试了很多次 进行了多种重塑和转置 它们要么引发错误说未对齐 要么返回单个值 我应该如何得到我想要的矩阵的输出乘积
  • 如何向 CouchDB (http://.couchone.com/) 执行 Ajax 请求

    我正在尝试创建一个简单的 AJAX 通过 jQuery 请求 http 您的用户名 couchone com 几乎与我在本地主机上安装了 couchdb 一样 如果我去http yourusername couchone com 通过浏览器
  • 如何在网站中实现搜索功能? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Delaunay 对带孔的二维多边形进行三角剖分

    我想对带有孔的复杂 但不是自相交 多边形进行三角剖分 以便生成的三角形全部位于多边形内部 完全覆盖该多边形 并遵守德劳内三角形规则 显然 我可以为所有点构建 Delaunay 三角剖分 但我担心多边形的某些边不会包含在生成的三角剖分中 那么
  • 比较两个字符串中的单词

    我做了两根弦 用户可以同时填写它们 char text 200 char text2 200 我需要从两个字符串中找到相似的单词 例如 Text 我一生都在这里 Text2 他们来这里是为了赢得我们所有人 我需要编程找到类似的单词 如 这里