linux libpinyin库

1510阅读 0评论2021-05-28 iibull
分类:其他平台

linux上的输入法确实是个问题.  通过libpinyin库则实现拼音到文字的转换.


点击(此处)折叠或打开

  1. #include <pinyin.h>
  2. #include <stdio.h>

  3. int main()
  4. {
  5.     char input[64];
  6.     pinyin_context_t * context = pinyin_init (SYSTEM_CONF, ""); //SYSTEM_CONF编译时指定的变量

  7.     if (context == NULL)
  8.     {
  9.         printf("Context not allocted...\n");
  10.         return 1;
  11.     }

  12.     pinyin_instance_t * instance = pinyin_alloc_instance (context);

  13.     if (instance == NULL)
  14.     {
  15.         printf("Instance not allocted...\n");
  16.         return 1;
  17.     }

  18.     printf("Please input pinyin:\n");

  19.     scanf("%s", input);

  20.     pinyin_parse_more_full_pinyins (instance, input);

  21.     pinyin_guess_sentence (instance);

  22.     guint number;

  23.     pinyin_guess_candidates(instance, 0, {});

  24.     pinyin_get_n_candidate (instance, &number);

  25.     printf ("%s has %d candidates\n", input, number);

  26.     for (guint i = 0; i < 5 && i < number; ++i)
  27.     {
  28.         lookup_candidate_t * candidate;
  29.         pinyin_get_candidate(instance, i, &candidate);

  30.         const gchar *display_string;
  31.         pinyin_get_candidate_string(instance, candidate, &display_string);
  32.         printf("%s\t", display_string);
  33.     }
  34.     printf("\n");

  35.     pinyin_free_instance (instance);

  36.     pinyin_fini (context);

  37.     return 0;
  38. }


  39. CFLAGS     := --std=c++11 $(shell pkg-config --cflags libpinyin)
  40. LIBS     := $(shell pkg-config --libs libpinyin)
  41. DATADIR := $(shell pkg-config --variable=pkgdatadir libpinyin)

  42. test_pinyin_parse_functions.out: test_pinyin_parse_functions.c
  43.     g++ -D SYSTEM_CONF=\"$(DATADIR)/data\" $(CFLAGS) $(LIBS) test_pinyin_parse_functions.c -o test_pinyin_parse_functions.out
OK, 现在是不是可以用某个 UI component 制作自己的汉字输入法了.
上一篇:linux snap包
下一篇:ROS2 rmw_connextdds