如何从C中的文本文件构建数组

时间:2015-10-20 01:28:33

标签: c string file text

我正在编写一个程序,我将来自文本文件的字符串插入到数组中。我已经编写了insert函数,但我很困惑如何按字符串运行文本文件字符串。

本质上在main()函数中程序需要设置一个数组,然后运行认为文件打开并在文件中的每个字符串上使用insert函数。那么我将如何获取每个字符串,在insert函数中使用它,然后转到文件中的下一个字符串。

如果需要更多说明,请告诉我!感谢。

更新了插入和主要功能:

insert函数将字符串单词插入Table,后者应按排序顺序维护。如果成功插入字符串,则返回n + 1;否则返回n。它使用二进制搜索。

int insert(char *word, char *Table[], int n){

    int low = 0;
    int high = n;
    int mid;
    int index = -1;
    int k;

    while (low < high)
    {
        mid = low  +  (high - low)/2;
        if (strcmp(Table[mid], word) == 0)
        {
            index = mid;
            break;
        }
        else if (strcmp(Table[mid], word) < 0)
            low = mid  +  1;
        else
            high = mid - 1;
    }
    if (index != -1 && index < n)
        return n;

    for (index = 0; index < n; index++)
    {
        if (strcmp(Table[index], word) < 0)
            continue;
        else
            break;
    }
    for (k = n-1; k >= index; k--)
    {
        Table[k + 1] = Table[k];
    }
    Table[index] = strdup(word);

    return n + 1;
}

主:

命令行应该是这样的&#34; ./ concordance 15&lt; input.txt中&#34;

int main(int argc, char *argv[]){

FILE *fp = fopen(argv[3], "r");
int n = atoi(argv[1]);
int insert;
char *Table[n];

我陷入了主要功能所以它不完整。 也是一个&#34;字&#34;在这个文件中,我用字符串表示,用空格,句号,逗号,分号,冒号,感叹号的标点字符分类 点,双引号,问号和换行符。但撇号仍然被认为是这个词的一部分。

1 个答案:

答案 0 :(得分:0)

我建议先使用MyCollection打开文件,然后使用FILE读取该行:

fgets

然后使用char* str; FILE* fp; fp = fopen("YOUR_FILE_NAME", "r"); // open for reading if (fp == NULL) { // say some error message return -1; } fgets(str, SOME_LARGE_NUMBER, fp);

strtok

或者通过循环遍历char* tok; do { tok = strtok(str, " "); // HANDLE STRING <-- This is where you would use your insert thing } while(tok != NULL); 字符串中的每个字符来手动解析字符串,因为它有点长,所以我不会写。{/ p>