C语言实现英文文章单词拼写检查

本程序利用给定的单词索引表对英文文章进行单词拼写检查,并将错误单词输出到文件中。

程序功能

  1. 读取单词索引表文件 index.txt,并将单词存储到数组中。
  2. 读取英文文章文件 in.txt,识别其中的单词。
  3. 逐个检查单词是否在索引表中,大小写不敏感。
  4. 将错误单词(转换为小写)输出到文件 error.txt 中,每个单词独占一行,并按字典序排序。

代码实现

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

#define MAX_WORD_LEN 50
#define MAX_WORDS 1000

int main() {
    char index[MAX_WORDS][MAX_WORD_LEN+1]; // 单词索引表
    int num_words = 0; // 单词个数
    FILE* index_file = fopen('index.txt', 'r');
    if (index_file == NULL) {
        printf('无法打开索引文件\n');
        return 1;
    }
    // 读取单词索引表
    while (fgets(index[num_words], MAX_WORD_LEN+1, index_file) != NULL) {
        // 去掉换行符
        index[num_words][strcspn(index[num_words], '\n')] = '\0';
        num_words++;
    }
    fclose(index_file);

    char word[MAX_WORD_LEN+1]; // 当前单词
    int word_len = 0; // 当前单词长度
    char c; // 当前字符
    FILE* in_file = fopen('in.txt', 'r');
    if (in_file == NULL) {
        printf('无法打开输入文件\n');
        return 1;
    }
    FILE* error_file = fopen('error.txt', 'w');
    if (error_file == NULL) {
        printf('无法打开输出文件\n');
        return 1;
    }
    // 读取输入文件中的单词,并逐个检查是否在单词索引表中
    while ((c = fgetc(in_file)) != EOF) {
        if (isalpha(c)) {
            if (word_len < MAX_WORD_LEN) {
                word[word_len++] = tolower(c);
            }
        } else {
            if (word_len > 0) {
                // 当前单词结束,检查是否在单词索引表中
                word[word_len] = '\0';
                int found = 0;
                for (int i = 0; i < num_words; i++) {
                    if (strcmp(word, index[i]) == 0) {
                        found = 1;
                        break;
                    }
                }
                if (!found) {
                    fprintf(error_file, '%s\n', word);
                }
                word_len = 0;
            }
        }
    }
    fclose(in_file);
    fclose(error_file);
    return 0;
}

使用方法

  1. 将单词索引表保存到文件 index.txt 中,每个单词占一行,按字典序排序。
  2. 将待检查的英文文章保存到文件 in.txt 中。
  3. 编译并运行程序。
  4. 程序将在 error.txt 文件中输出错误单词列表。

注意事项

  • 程序假设 index.txt 中的单词数量不超过1000个,每个单词长度不超过50个字母。
  • 程序会将所有错误单词转换为小写输出。
  • 程序不会对文章进行语法或语义分析,仅进行单词拼写检查。
C语言实现英文文章单词拼写检查

原文地址: https://www.cveoy.top/t/topic/gmBV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录