C 将输入文本文件解析为单词

标签 c split strtok

我正在尝试将输入文件(包含具有多行和分隔符的文本文档,即“!,.?”)解析为单词。我的函数“分割函数”是:

int splitInput(fp) {

    int i= 0;
    char  line[255];
    char *array[5000];
    int x;
    while (fgets(line, sizeof(line), fp) != NULL) {     
        array[i] = strtok(line, ",.!? \n");
        printf("Check print - word %i:%s:\n",i, array[i]);
        i++;
    }
    return 0;
}

最佳答案

这是更正后的函数[抱歉,需要进行额外的样式清理]:

int
splitInput(fp)
{
    int i = 0;
    char *cp;
    char *bp;
    char line[255];
    char *array[5000];
    int x;

    while (fgets(line, sizeof(line), fp) != NULL) {
        bp = line;
        while (1) {
            cp = strtok(bp, ",.!? \n");
            bp = NULL;

            if (cp == NULL)
                break;
            array[i++] = cp;

            printf("Check print - word %i:%s:\n",i-1, cp);
        }
    }

    return 0;
}

现在,查看 strtok 的手册页以了解 bp 技巧

关于C 将输入文本文件解析为单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33532570/

相关文章:

c - 试图将字符串拆分成多个部分

c++ - 是否有可能让持久的 cuda 内核运行并与 cpu 异步通信?

ios - 如何确定用户在iPad上的iOS5中拆分了键盘

c - strtok() 在 C 中给出段错误

c - 结构内部消失后的段错误(变量已损坏)

c - IPMI:如何使用 ipmimonitoring-sensors.c 查找阈值

C HEX 存储、显示和操作

javascript - 如何在数组项之间添加空格javascript

python - 使用 Python 正则表达式在字符之间拆分字符串

c - 当一行中有 2 个分隔符时,将字符串拆分为 C 中的标记