static int dictionary_to_string(crf_dictionary_t* dic, int id, char const **pstr) { quark_t *qrk = (quark_t*)dic->internal; const char *str = quark_to_string(qrk, id); if (str != NULL) { char *dst = (char*)malloc(strlen(str)+1); if (dst) { strcpy(dst, str); *pstr = dst; return 0; } } return 1; }
int main(int argc, char *argv[]) { quark_t *qrk = quark_new(); int qid = 0; qid = quark_get(qrk, "zero"); qid = quark_get(qrk, "one"); qid = quark_get(qrk, "zero"); qid = quark_to_id(qrk, "three"); qid = quark_get(qrk, "two"); qid = quark_get(qrk, "three"); qid = quark_to_id(qrk, "three"); qid = quark_get(qrk, "zero"); qid = quark_get(qrk, "one"); printf("%s\n", quark_to_string(qrk, 0)); printf("%s\n", quark_to_string(qrk, 1)); printf("%s\n", quark_to_string(qrk, 2)); printf("%s\n", quark_to_string(qrk, 3)); quark_delete(qrk); return 0; }