【发布时间】:2013-11-23 01:53:57
【问题描述】:
我想使用这个函数计算文件中每行的字数,@params line_number 是文件包含的行数。
当我尝试解析这个文件时:
world hello
hello world
hello hello
world salut
我得到了向量的这些结果
vector[0] = 2
vector[1] = 2
vector[2] = 2
vector[3] = 1
vector[4] = 2
我的代码有什么问题?在一行没有单词的情况下,如何停止获取 1 而不是 0?
int * get_vtor(FILE *file, int line_number)
{
int *vtor = malloc(line_number*sizeof(int)), max, j, k, u;
char a_file_line[TAILLE_MAX_LINE]; // TAILLE_MAX_LINE is #define earlier to 100
j = k = u = max = 0;
rewind(file);
while((fgets(a_file_line, TAILLE_MAX_LINE ,file)) != NULL)
{
char * current = strtok(a_file_line," ");
while(current != NULL)
{
u++;
current = strtok(NULL, " ");
}
*(vtor+j) = u;
u = 0; j++;
memset(a_file_line, 0 , sizeof(a_file_line));
}
return vtor;
}
【问题讨论】:
-
计算单词的方法多么复杂……