在另一个文件中从一个文件查找关键字



所以我的类项目需要我从一个文件中找到一个关键字列表:

Master's,Bachelor's,Professor

需要我在另一个文件中的简历中找到它:

John Smith 
1234 Residence Road 
johnsmith@gmail.com
Degree level: Bachelor's degree
Major: Applied mathematics
Work Experience:
Professor at local university for multiple math classes, mainly calculus
Worked at a tech company studying the analytics of their online store

现在我将关键字存储在一个char spacing[10][15]数组中(没有逗号(并且我将简历保存为CCD_ 2。两者都有效,因为它们都打印出来了,但当试图找到关键字时,我总是得到0(int KWcount是关键字出现次数的计数器(。这是将简历放入缓冲区的代码,也是我查找单词的尝试。

//Resume
FILE* fp2;
fp2 = fopen("resume.txt", "r");
if (fp == NULL) {
printf("nFile not found.n");
return 0;
}
//File Reading
fseek(fp2, 0L, SEEK_END);
numbytes = ftell(fp2);
fseek(fp2, 0L, SEEK_SET);
buffer = (char*)calloc(numbytes, sizeof(char));
if (buffer == NULL)
return 1;
fread(buffer, sizeof(char), numbytes, fp2);
fclose(fp2);
printf("Before process: %i", KWcount);
//Search for keyword
for (i=0; i < 10; i++) {
if (strcmp(buffer, spacing[i]) == 0) {
KWcount++;
}
}
printf("nnAfter process:%in", KWcount);
fclose(fp2);
}
Before process:0
After process:0

我真的不知道问题出在哪里,我的教授也没有任何帮助,所以有人有什么建议或方法来解决这个问题吗?

strcmp(buffer, spacing[i])只有当两个参数指向完全相等的字符串时,strcmp才会返回0。你需要做的是逐字逐句地搜索buffer,然后将它们与你期望找到的单词进行比较。您可能会发现函数strtok可以将简历缓冲区拆分为多个单词。

我还建议使用strncmp,因为它允许您在比较中限制最大字符数。毕竟,你的目标是只比较简历中的一个单词,而不是整个字符串。

相关内容

  • 没有找到相关文章