将句子(行)解析为单词

时间:2016-07-09 13:40:40

标签: c parsing

我需要您就如何改进此代码或我是否必须改进此代码提出意见。 它正在读取一个输入文件并将其解析为单词,然后将它们保存为一些动态结构,如链表或树。 我想知道它是否有效或是否更有效。

    if index < facts.count && index > 0 {
        index -= 1
    } else {
        index = facts.count - 1
    }

期待您的意见。谢谢。

1 个答案:

答案 0 :(得分:0)

从文件中读取一行并存储在数组中,然后从开始读取数组并将其标记化!!!

为什么要直接对每个单词进行标记?附:如果必须以不同方式处理不同行的单词,可以通过分隔case '\n':

来实现
    char *word=malloc(sizeof(char)*maxSize);
    int i=0;
    while(1){ 
        switch(c=fgetc(stdin)){
            case  ',': case '(': case ')': case '?': case '/': 
            case '|': case '.': case '!': case '-': case '\n':
            case ':': case ';': case '^': case '[': case']': case ' ':
                word[i]='\0';
                    //call your function here
                i=0;
                break;
            case EOF:
                word[i]='\0'
                if(i>0);
                    //call your function
                //file is read completely
                return;
            default:
                test[i++]=c;
        }
        if(i==maxSize); //reallocate
    }