将字典(外部文本文件)中的单词与文章(另一个外部文本文件)匹配

时间:2009-10-20 04:20:40

标签: c

我已经设法将文章存储到堆中,但是我该如何处理字典呢?我尝试使用 strcpy(tempArticle [i],字典); 但它似乎没有用?有人会给我一个关于下一步该做什么的提示吗?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void spellCheck(char article[], char dictionary[]) {
    int len = strlen(article) + 1;
    int i;
    char* tempArticle;
    tempArticle = malloc(len);

    if (tempArticle == NULL) {
        printf("spellcheck: Memory allocation failed.\n");
        return;
    }

    for(i = 0; i < len; i++)
        tempArticle[i] = tolower(article[i]);

        i=0;

    while (tempArticle[i] != '\0'){
        if (tempArticle[i] >= 33 && tempArticle[i] <= 64)
            tempArticle[i] = ' ';
        i++;
    }

    strcpy(tempArticle[i], dictionary);

    printf("%s", tempArticle);

    free(tempArticle);
}

2 个答案:

答案 0 :(得分:1)

您最好的选择是先找出算法,然后然后对其进行编码。

换句话说,获取白板,一张纸或启动文本编辑器,并用简单的语言写下您将要将文章与字典进行比较的步骤。您可以从非常简单的事情开始,例如:

  • 浏览文章中的每个单词,看看它是否在字典中。如果不是,请将其添加到拼写错误的单词列表中。
  • 打印拼写错误的单词列表。

然后你必须进一步打破每个复杂的位 - 例如,“查看字典中是否有一个单词”需要分解。 (顺便说一下,像这样的每个自包含的“复杂位”都是生成代码中单独函数的良好候选者。)

此时,您会发现将您提出的内容转换为代码将更容易批次

答案 1 :(得分:0)

  

我尝试过使用strcpy(tempArticle [i],字典);但它似乎没有用?

tempArticle [i]是数组位置,字典是数组..

使用数组存储数组..希望这将解决问题..现在我想只有字典中的第一个字符才会存储在temparticle中..