Рассматривая классический пример функций Map () и Reduce (), я пишу программу, которая принимает в качестве входного файла файл .txt, а затем подсчитывает частоту каждого слова в документе.Я провел много исследований обеих функций и нашел много примеров с использованием Java или общего псевдокода, но есть одна часть, которую я не могу понять.Это то, что у меня сейчас есть:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void map(char *name, char *content){
char *str = (char*)malloc((9999)*sizeof(char));
str = content;
char* token;
token = strtok(str, " ,.");
while(token)
{
token = strtok(NULL, " ,.");
}
}
int main(int argc, char *argv[]){
int i =0;
char line[9999]; //= (char*)malloc((argc)*sizeof(char));
FILE *fp = fopen(argv[1], "r");
while (fgets(line, 150, fp) != NULL)
{
map(argv[1], line);
}
fclose(fp);
return 0;
}
Функция map способна построчно разбивать каждое слово в документе, но часть, которую я не понимаю, состоит в том, как отобразить значения.Как типичный "emit (token, 1)" будет переведен в C?