在C文本文件中删除空格,换行和制表符

时间:2019-10-02 22:55:19

标签: c strtok

我试图用C语言编写一个程序,该程序接收文件,读取每一行并分离每个单词作为标记。我读到strtok()可以满足我的要求,因此我按以下顺序使用了3个阶段:分离新行,制表符和空白。 但是发生的是,当我尝试打印每个字符串时,都缺少了一些。

void pre_proces(const char **op, FILE *arq){

    char linha[200];
    int num_linha = 1;

    while(!feof(arq)){
        fgets(linha, 200, arq);
        char *expressao = strtok(linha, "\n");

        while(expressao){
            strupr(expressao);
            char *sem_tab = strtok(expressao, "\t");
            while(sem_tab){
                char *token = strtok(sem_tab, " ");
                while(token){
                    printf("%s\n", token);
                    token = strtok(NULL, " ");
                }
                //printf("%s\n", sem_tab);
                sem_tab = strtok(NULL, "\t");
            }
            //printf("%s\n", expressao);
            expressao = strtok(NULL, "\n");
        }
        num_linha++;
    }
}

The file that I want to detach is this one

那些大空白是多个选项卡。

Printing the tokens

Printing sem_tab

是什么使某些弦消失了?

0 个答案:

没有答案