Кажется, что вы хотите извлечь только значение "Freq", в этом случае этого кода достаточно:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *str = "[{\"Letter\": 0 ,\"Freq\": 2858},{\"Letter\" : 31,\"Freq\" : 0}]";
int main(void)
{
char *ptr = str;
long value;
while (ptr) {
ptr = strstr(ptr, "\"Freq\"");
if (ptr == NULL) {
break;
}
ptr = strchr(ptr, ':');
if (ptr == NULL) {
break;
}
ptr++;
value = strtol(ptr, &ptr, 10);
if (*ptr != '}') {
break;
}
ptr++;
printf("%lu\n", value);
}
return 0;
}