分析:
我们可以用二叉搜索树来解决这个问题,把单词存在一个结点里,这个结点还能保存它的左右孩子指针,左子树里存的是比它小的单词,右子树里存的是比它大的单词。二叉搜索树的概念和基本操作在我的上一篇博客中已经解释清楚了,这是上一篇博客连接:https://mp.csdn.net/mdeditor/82465620

单词都是一个字符串,在比较字符串的大小的时候,有专门的函数:strcmp()

JudgeWord.h

#ifndef __JUDGEWORD_H__
#define __JUDGEWORD_H__#include<string.h>
#include<assert.h>typedef char* KeyType;
typedef struct BSTreeNode
{struct BSTreeNode* _pLeft;struct BSTreeNode* _pRight;KeyType _key;
}BSTKNode;void InitBSTKNode(BSTKNode** pRoot);
void InsertBSTKNode(BSTKNode** pRoot, KeyType key);
BSTKNode* FindBSTKNode(BSTKNode* pRoot, KeyType key);#endif //__JUDGEWORD_H__

JudgeWord.c

#define _CRT_SECURE_NO_WARNINGS 1#include"JudgeWord.h"void InitBSTKNode(BSTKNode** pRoot)
{assert(pRoot);*pRoot = NULL;
}BSTKNode* BuyNode(KeyType key)
{BSTKNode* newNode = NULL;newNode = (BSTKNode*)malloc(sizeof(BSTKNode));if (NULL == newNode){printf("创建结点失败\n");return NULL;}newNode->_key = key;newNode->_pLeft = NULL;newNode->_pRight = NULL;return newNode;
}void InsertBSTKNode(BSTKNode** pRoot, KeyType key)
{assert(pRoot);if (NULL == *pRoot){*pRoot = BuyNode(key);return;}int tmp = 0;tmp = strcmp((*pRoot)->_key, key);if (tmp > 0){return InsertBSTKNode(&(*pRoot)->_pRight, key);}else if (tmp < 0){return InsertBSTKNode(&(*pRoot)->_pLeft, key);}elsereturn;
}BSTKNode* FindBSTKNode(BSTKNode* pRoot, KeyType key)
{if (NULL == pRoot)return NULL;int tmp = strcmp(pRoot->_key, key);if (tmp > 0)return FindBSTKNode(pRoot->_pLeft, key);else if (tmp < 0)return FindBSTKNode(pRoot->_pRight, key);elsereturn pRoot;
}

test.c

#define _CRT_SECURE_NO_WARNINGS 1#include"JudgeWord.h"int main()
{BSTKNode* pRoot;InitBSTKNode(&pRoot);InsertBSTKNode(&pRoot, "hello");InsertBSTKNode(&pRoot, "word");InsertBSTKNode(&pRoot, "child");printf("%s\n", FindBSTKNode(pRoot, "hello")->_key);printf("%s\p", FindBSTKNode(pRoot, "cvu")->_key);return 0;
}

判断一个单词拼写是否正确相关推荐

  1. 编写一个函数,该函数能判断一个英文句子str(带空格)中是否含有某个单词w,如“How old are you?”含有“old”。在main函数中输入一个英文句子,再输入一个单词,如果英文句子中含有那

    题目要求: 编写一个C程序,实现以下功能: 编写一个函数,该函数能判断一个英文句子str(带空格(升级版))中是否含有某个单词w,如"How old are you?"含有&quo ...

  2. Python写一个简洁拼写检查器

    网上看到的一篇神文,利用的是朴素贝叶斯模型实现了一个简单的拼写检查器. 英文原文链接见这里,中文翻译如下 =============================================== ...

  3. 机器学习:单词拼写纠正器python实现

    01 朴素贝叶斯分类实战 前面介绍了贝叶斯的基本理论,朴素贝叶斯分类器,拉普拉斯修正,文章的链接如下: 机器学习:说说贝叶斯分类 朴素贝叶斯分类器:例子解释 朴素贝叶斯分类:拉普拉斯修正 在这3篇推送 ...

  4. lua中判断一个字符串是否是合法的ip地址格式

    项目中使用了lua,需要判断一个字符串是否是正确的ip格式.记录下写出的判断函数.合法返回原ip字符串,不合法返回false --判断ip是否合法 function JudgeIPString(ipS ...

  5. Java黑皮书课后题第7章:***7.35(游戏:猜字词游戏)编写一个猜字词游戏,随机产生一个单词,当用户猜测正确后,正确的字母显示出来。当用户猜出一个单词,显示猜错的次数,并询问用户是否继续猜测

    ***7.35(游戏:猜字词游戏)编写一个猜字词游戏,随机产生一个单词,当用户猜测正确后,正确的字母显示出来.当用户猜出一个单词,显示猜错的次数,并询问用户是否继续猜测 题目 题目描述与运行示例 破题 ...

  6. 【Java小项目实训】编写一个窗体程序模拟单词拼写

    实训要求 窗口中有一个TextFie1d对象和一个按钮对象,将这两个对象添加到一个面板中,然后将该面板添加到窗口的北面.用户在TextField 对象中输入一个英文单词,然后回车或单击按钮,程序将创建 ...

  7. C#一个完整判断18位身份证号正确函数

    C#一个完整判断18位身份证号正确函数 private static bool CheckIDCard18(string CardId){string pattern = @"^\d{17} ...

  8. asp 不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务

    这几天搞ASP. 搞了个网站,一直有Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC Microsoft ...

  9. 列表根据下标取值_散列表(上):Word文档中的单词拼写检查功能是如何实现的?...

    Word这种文本编辑器你平时应该经常用吧,那你有没有留意过它的拼写检查功能呢?一旦我们在Word里输入一个错误的英文单词,它就会用标红的方式提示"拼写错误".Word的这个单词拼写 ...

最新文章

  1. linux执行class文件_「大数据干货」Windows系统和Linux系统中打jar包与导入语句剖析...
  2. linux下文件以及目录权限修改(摘抄)
  3. Selection change event Issue is fixed handleListItemPress,SingleSelectMaster
  4. vue ---- 数组的常用方法
  5. 【图像融合】基于matlab GUI小波变换彩色图像融合(含评价指标)【含Matlab源码 1756期】
  6. Debian 中使用apt-get update 出现NO_PUBKEY 解决方法
  7. IPOP下的tcl脚本
  8. php webm文件头,webm EBML文件头分析
  9. Galerkin method 热传导公式推导过程
  10. 踩坑录·CacheCloud无法启动
  11. word-目录突然无法更新解决方法
  12. Debian和Ubuntu版本比较
  13. python pil_Python PIL composite()用法及代码示例
  14. 如果制作一个好看的Vlog视频,摄影剪辑声音博主推荐
  15. 诊断2018微商:从乱象到赋能,世界微商大会发明的新玩法为您指路
  16. HNB资讯里,中烟加热不燃烧有哪些牌子?
  17. 富爸爸系列2—财务自由之路
  18. 双连通分量的题目列表(一)
  19. 新版本读取老版本文件崩溃BUG
  20. 三星首次公开投资区块链,布局始于三年前

热门文章

  1. EasyCVR通过域名访问网站,录像回看不了如何解决?
  2. Java isDigit()
  3. 0基础转行网络安全,选择pwn还是web?
  4. 办公达人办公高效原来是掌握了这些常用的快捷键
  5. 获取下一个工作日/休息日的方法 本地基础搭建 Springboot 法定节假日/休息日/调休日 均可 不用调三方
  6. Android单元测试总结
  7. 如何开发一个chrome浏览器插件
  8. java 递归详解_Java递归函数讲解
  9. Excel Day5
  10. 利用SURF特征检测和FLANN最近邻算法实现图像的目标提取