这篇教程C++ string_join函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中string_join函数的典型用法代码示例。如果您正苦于以下问题:C++ string_join函数的具体用法?C++ string_join怎么用?C++ string_join使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了string_join函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: build_filenamesvoidbuild_filenames(cmd_ln_t *config, char const *basename, char **out_infile, char **out_outfile){ char const *di, *do_, *ei, *eo; di = cmd_ln_str_r(config, "-di"); do_ = cmd_ln_str_r(config, "-do"); ei = cmd_ln_str_r(config, "-ei"); eo = cmd_ln_str_r(config, "-eo"); *out_infile = string_join(di ? di : "", di ? "/" : "", basename, ei ? "." : "", ei ? ei : "", NULL); *out_outfile = string_join(do_ ? do_ : "", do_ ? "/" : "", basename, eo ? "." : "", eo ? eo : "", NULL); /* Build output directory structure if possible/requested (it is * by default). */ if (cmd_ln_boolean_r(config, "-build_outdirs")) { char *dirname = ckd_salloc(*out_outfile); path2dirname(*out_outfile, dirname); build_directory(dirname); ckd_free(dirname); }}
开发者ID:kirpen,项目名称:pocketsphinx.js,代码行数:32,
示例2: NBLA_CHECKvoid SigmoidCrossEntropy<T, Tl>::setup_impl(const Variables &inputs, const Variables &outputs) { NBLA_CHECK(inputs[0]->shape() == inputs[1]->shape(), error_code::value, "Dimensions of inputs must match. " "inputs[0]: %s != inputs[1]: %s.", string_join(inputs[0]->shape(), string(", ")).c_str(), string_join(inputs[1]->shape(), string(", ")).c_str()); outputs[0]->reshape(inputs[0]->shape(), true);}
开发者ID:zwsong,项目名称:nnabla,代码行数:10,
示例3: ps_default_search_argsvoidps_default_search_args(cmd_ln_t *config){#ifdef MODELDIR /* Set default acoustic and language models. */ const char *hmmdir = cmd_ln_str_r(config, "-hmm"); if (hmmdir == NULL && hmmdir_exists(MODELDIR "/en-us/en-us")) { hmmdir = MODELDIR "/en-us/en-us"; cmd_ln_set_str_r(config, "-hmm", hmmdir); } const char *lmfile = cmd_ln_str_r(config, "-lm"); if (lmfile == NULL && !cmd_ln_str_r(config, "-fsg") && !cmd_ln_str_r(config, "-jsgf") && !cmd_ln_str_r(config, "-lmctl") && !cmd_ln_str_r(config, "-kws") && !cmd_ln_str_r(config, "-keyphrase") && file_exists(MODELDIR "/en-us/en-us.lm.dmp")) { lmfile = MODELDIR "/en-us/en-us.lm.dmp"; cmd_ln_set_str_r(config, "-lm", lmfile); } const char *dictfile = cmd_ln_str_r(config, "-dict"); if (dictfile == NULL && file_exists(MODELDIR "/en-us/cmudict-en-us.dict")) { dictfile = MODELDIR "/en-us/cmudict-en-us.dict"; cmd_ln_set_str_r(config, "-dict", dictfile); } /* Expand acoustic and language model filenames relative to installation * path. */ if (hmmdir && !path_is_absolute(hmmdir) && !hmmdir_exists(hmmdir)) { char *tmphmm = string_join(MODELDIR "/hmm/", hmmdir, NULL); if (hmmdir_exists(tmphmm)) { cmd_ln_set_str_r(config, "-hmm", tmphmm); } else { E_ERROR("Failed to find mdef file inside the model folder " "specified with -hmm `%s'/n", hmmdir); } ckd_free(tmphmm); } if (lmfile && !path_is_absolute(lmfile) && !file_exists(lmfile)) { char *tmplm = string_join(MODELDIR "/lm/", lmfile, NULL); cmd_ln_set_str_r(config, "-lm", tmplm); ckd_free(tmplm); } if (dictfile && !path_is_absolute(dictfile) && !file_exists(dictfile)) { char *tmpdict = string_join(MODELDIR "/lm/", dictfile, NULL); cmd_ln_set_str_r(config, "-dict", tmpdict); ckd_free(tmpdict); }#endif}
开发者ID:jhector,项目名称:sphinxfuzz,代码行数:53,
示例4: mainint main(){ /* Test the string_join function. */ char *s1 = "Hello "; char *s2 = "World"; printf("%s/n", string_join(s1, s2)); printf("s1 len=%d/n", (int)strlen(s1)); printf("s2 len=%d/n", (int)strlen(s2)); printf("s3 len=%d/n", (int)strlen(string_join(s1, s2))); return 0;}
开发者ID:imnotlistening,项目名称:rsh,代码行数:15,
示例5: write_nbeststatic intwrite_nbest(ps_decoder_t *ps, char const *nbestdir, char const *uttid){ cmd_ln_t *config; char *outfile; FILE *fh; ps_nbest_t *nbest; int32 i, n, score; const char* hyp; config = ps_get_config(ps); outfile = string_join(nbestdir, "/", uttid, cmd_ln_str_r(config, "-nbestext"), NULL); n = cmd_ln_int32_r(config, "-nbest"); fh = fopen(outfile, "w"); if (fh == NULL) { E_ERROR_SYSTEM("Failed to write a lattice to file %s/n", outfile); return -1; } nbest = ps_nbest(ps, 0, -1, NULL, NULL); for (i = 0; i < n && nbest && (nbest = ps_nbest_next(nbest)); i++) { hyp = ps_nbest_hyp(nbest, &score); fprintf(fh, "%s %d/n", hyp, score); } if (nbest) ps_nbest_free(nbest); fclose(fh); return 0;}
开发者ID:joicemjoseph,项目名称:pocketsphinx.js,代码行数:30,
示例6: write_latticestatic intwrite_lattice(ps_decoder_t *ps, char const *latdir, char const *uttid){ ps_lattice_t *lat; logmath_t *lmath; cmd_ln_t *config; char *outfile; int32 beam; if ((lat = ps_get_lattice(ps)) == NULL) { E_ERROR("Failed to obtain word lattice for utterance %s/n", uttid); return -1; } config = ps_get_config(ps); outfile = string_join(latdir, "/", uttid, cmd_ln_str_r(config, "-outlatext"), NULL); /* Prune lattice. */ lmath = ps_get_logmath(ps); beam = logmath_log(lmath, cmd_ln_float64_r(config, "-outlatbeam")); ps_lattice_posterior_prune(lat, beam); if (0 == strcmp("htk", cmd_ln_str_r(config, "-outlatfmt"))) { if (ps_lattice_write_htk(lat, outfile) < 0) { E_ERROR("Failed to write lattice to %s/n", outfile); return -1; } } else { if (ps_lattice_write(lat, outfile) < 0) { E_ERROR("Failed to write lattice to %s/n", outfile); return -1; } } return 0;}
开发者ID:joicemjoseph,项目名称:pocketsphinx.js,代码行数:34,
示例7: NormalPathString NormalPath(const String& file_){ String file(file_); file.replace('//','/'); arr_1t<String> arr=string_split(file,"/"); arr_1t<String> tmp; for(size_t i=0;i<arr.size();i++) { if(arr[i]=="") { if(i==0) tmp.push_back(""); } else if(arr[i]!="..") { tmp.push_back(arr[i]); } else if(tmp.empty()||tmp.back()=="..") { tmp.push_back(arr[i]); } else { tmp.pop_back(); } } return string_join(tmp.begin(),tmp.end(),"/");}
开发者ID:xuanya4202,项目名称:ew_base,代码行数:30,
示例8: populate_entriesvoid populate_entries(struct s_gui_data *gui_data) { GtkTreeModel *modelEntries; GtkTreeIter iter; gtk_list_store_clear(gui_data->listStoreEntries); GList *item = g_list_first(gui_data->conf->entrylist); while(item) { monconf_entry *entry = (monconf_entry *)item->data; char *str_ignores = string_join(entry->ignore_files); gtk_list_store_append(gui_data->listStoreEntries, &iter); gtk_list_store_set(gui_data->listStoreEntries,&iter, COL_ENTRY_PATH, entry->file_name, COL_ENTRY_RECURSIVE, (gboolean)(entry->recursive), COL_ENTRY_EVENT_CREATE, (gboolean)(entry->events & MON_CREATE), COL_ENTRY_EVENT_MODIFY, (gboolean)(entry->events & MON_MODIFY), COL_ENTRY_EVENT_DELETE, (gboolean)(entry->events & MON_DELETE), COL_ENTRY_EVENT_ATTRIBS, (gboolean)(entry->events & MON_ATTRIB), COL_ENTRY_EVENT_MOVED_FROM, (gboolean)(entry->events & MON_MOVED_FROM), COL_ENTRY_EVENT_MOVED_TO, (gboolean)(entry->events & MON_MOVED_TO), COL_ENTRY_IGNORE, str_ignores, -1 ); free(str_ignores); item = item->next; }}
开发者ID:hiddendog,项目名称:monarqui,代码行数:28,
示例9: string_joinstd::string Parallel::name() const { std::vector<std::string> names; for(auto&& hash : m_hashes) names.push_back(hash->name()); return "Parallel(" + string_join(names, ',') + ")"; }
开发者ID:lanurmi,项目名称:botan,代码行数:9,
示例10: ps_add_filestatic voidps_add_file(ps_decoder_t *ps, const char *arg, const char *hmmdir, const char *file){ char *tmp = string_join(hmmdir, "/", file, NULL); if (cmd_ln_str_r(ps->config, arg) == NULL && file_exists(tmp)) cmd_ln_set_str_r(ps->config, arg, tmp); ckd_free(tmp);}
开发者ID:jhector,项目名称:sphinxfuzz,代码行数:10,
示例11: hmmdir_existsstatic inthmmdir_exists(const char *path){ FILE *tmp; char *mdef = string_join(path, "/mdef", NULL); tmp = fopen(mdef, "rb"); if (tmp) fclose(tmp); ckd_free(mdef); return (tmp != NULL);}
开发者ID:jhector,项目名称:sphinxfuzz,代码行数:11,
示例12: process_fsgctl_linestatic intprocess_fsgctl_line(ps_decoder_t *ps, cmd_ln_t *config, char const *fname){ fsg_model_t *fsg; int err; char *path = NULL; const char *fsgdir = cmd_ln_str_r(config, "-fsgdir"); const char *fsgext = cmd_ln_str_r(config, "-fsgext"); if (fname == NULL) return 0; if (fsgdir) path = string_join(fsgdir, "/", fname, fsgext ? fsgext : "", NULL); else if (fsgext) path = string_join(fname, fsgext, NULL); else path = ckd_salloc(fname); fsg = fsg_model_readfile(path, ps_get_logmath(ps), cmd_ln_float32_r(config, "-lw")); err = 0; if (!fsg) { err = -1; goto error_out; } if (ps_set_fsg(ps, fname, fsg)) { err = -1; goto error_out; } E_INFO("Using FSG: %s/n", fname); if (ps_set_search(ps, fname)) err = -1;error_out: fsg_model_free(fsg); ckd_free(path); return err;}
开发者ID:joicemjoseph,项目名称:pocketsphinx.js,代码行数:41,
示例13: build_outdir_onestatic intbuild_outdir_one(cmd_ln_t *config, char const *arg, char const *uttpath){ char const *dir; if ((dir = cmd_ln_str_r(config, arg)) != NULL) { char *dirname = string_join(dir, "/", uttpath, NULL); build_directory(dirname); ckd_free(dirname); } return 0;}
开发者ID:joicemjoseph,项目名称:pocketsphinx.js,代码行数:12,
示例14: dvswitch_read_configvoid dvswitch_read_config(void (*item_handler)(const char *, const char *)){ read_config("/etc/dvswitchrc", item_handler); const char * home = getenv("HOME"); if (home) { char * home_dvswitchrc = string_join(home, "/.dvswitchrc"); read_config(home_dvswitchrc, item_handler); free(home_dvswitchrc); }}
开发者ID:fqxp,项目名称:dvswitch,代码行数:12,
示例15: process_mllrctl_linestatic intprocess_mllrctl_line(ps_decoder_t *ps, cmd_ln_t *config, char const *file){ char const *mllrdir, *mllrext; char *infile = NULL; ps_mllr_t *mllr; static char *lastfile; if (file == NULL) return 0; if (lastfile && 0 == strcmp(file, lastfile)) return 0; ckd_free(lastfile); lastfile = ckd_salloc(file); mllrext = cmd_ln_str_r(config, "-mllrext"); if ((mllrdir = cmd_ln_str_r(config, "-mllrdir"))) infile = string_join(mllrdir, "/", file, mllrext ? mllrext : "", NULL); else if (mllrext) infile = string_join(file, mllrext, NULL); else infile = ckd_salloc(file); if ((mllr = ps_mllr_read(infile)) == NULL) { ckd_free(infile); return -1; } if (ps_update_mllr(ps, mllr) == NULL) { ps_mllr_free(mllr); ckd_free(infile); return -1; } E_INFO("Using MLLR: %s/n", file); ckd_free(infile); return 0;}
开发者ID:joicemjoseph,项目名称:pocketsphinx.js,代码行数:40,
示例16: batch_decoder_decodeint batch_decoder_decode(batch_decoder_t *bd, char *file, char *uttid, int32 sf, int32 ef, alignment_t *al){ featbuf_t *fb; FILE *infh; char const *cepdir, *cepext; char *infile; int rv; if (ef != -1 && ef < sf) { E_ERROR("End frame %d is < start frame %d/n", ef, sf); return -1; } cepdir = cmd_ln_str_r(bd->config, "-cepdir"); cepext = cmd_ln_str_r(bd->config, "-cepext"); /* Build input filename. */ infile = string_join(cepdir ? cepdir : "", "/", file, cepext ? cepext : "", NULL); if (uttid == NULL) uttid = file; if ((infh = fopen(infile, "rb")) == NULL) { E_ERROR_SYSTEM("Failed to open %s", infile); return -1; } fb = search_factory_featbuf(bd->sf); gettimeofday(&bd->utt_start, NULL); featbuf_producer_start_utt(fb, uttid); if (cmd_ln_boolean_r(bd->config, "-adcin")) rv = batch_decoder_decode_adc(bd, infh, sf, ef, al); else rv = batch_decoder_decode_mfc(bd, infh, sf, ef, al); featbuf_producer_end_utt(fb); if (bd->hypfh) { char const *hyp; int32 score; hyp = search_hyp(bd->fwdflat, &score); fprintf(bd->hypfh, "%s (%s %d)/n", hyp, uttid, score); } fclose(infh); ckd_free(infile); return rv;}
开发者ID:Ankit77,项目名称:cmusphinx,代码行数:52,
示例17: NBLA_CHECKvoid KLMultinomial<T>::setup_impl(const Variables &inputs, const Variables &outputs) { NBLA_CHECK(inputs[0]->shape() == inputs[1]->shape(), error_code::value, "Dimensions of inputs must match. " "inputs[0]: %s != inputs[1]: %s.", string_join(inputs[0]->shape(), string(", ")).c_str(), string_join(inputs[1]->shape(), string(", ")).c_str()); Shape_t inshape = inputs[0]->shape(); NBLA_CHECK(base_axis_ < inshape.size(), error_code::value, "base_axis must be less than ndim of inputs[0]. " "base_axis: %d >= ndim of inputs[0]: %d.", base_axis_, inshape.size()); Shape_t outshape(base_axis_ + 1); for (int i = 0; i < base_axis_; i++) { outshape[i] = inshape[i]; } outshape[base_axis_] = 1; outputs[0]->reshape(outshape, true);}
开发者ID:zwsong,项目名称:nnabla,代码行数:22,
示例18: jsgf_get_rulejsgf_rule_t *jsgf_get_rule(jsgf_t * grammar, char const *name){ void *val; char *fullname; fullname = string_join("<", name, ">", NULL); if (hash_table_lookup(grammar->rules, fullname, &val) < 0) { ckd_free(fullname); return NULL; } ckd_free(fullname); return (jsgf_rule_t *) val;}
开发者ID:Amponti,项目名称:SpeechRecognition_DE1-SOC,代码行数:14,
示例19: CPUID_PRINT//staticstd::string CPUID::to_string() { std::vector<std::string> flags;#define CPUID_PRINT(flag) do { if(has_##flag()) { flags.push_back(#flag); } } while(0)#if defined(BOTAN_TARGET_CPU_IS_X86_FAMILY) CPUID_PRINT(sse2); CPUID_PRINT(ssse3); CPUID_PRINT(sse41); CPUID_PRINT(sse42); CPUID_PRINT(avx2); CPUID_PRINT(avx512f); CPUID_PRINT(rdtsc); CPUID_PRINT(bmi1); CPUID_PRINT(bmi2); CPUID_PRINT(adx); CPUID_PRINT(aes_ni); CPUID_PRINT(clmul); CPUID_PRINT(rdrand); CPUID_PRINT(rdseed); CPUID_PRINT(intel_sha);#endif#if defined(BOTAN_TARGET_CPU_IS_PPC_FAMILY) CPUID_PRINT(altivec); CPUID_PRINT(ppc_crypto);#endif#if defined(BOTAN_TARGET_CPU_IS_ARM_FAMILY) CPUID_PRINT(neon); CPUID_PRINT(arm_sve); CPUID_PRINT(arm_sha1); CPUID_PRINT(arm_sha2); CPUID_PRINT(arm_aes); CPUID_PRINT(arm_pmull); CPUID_PRINT(arm_sha2_512); CPUID_PRINT(arm_sha3); CPUID_PRINT(arm_sm3); CPUID_PRINT(arm_sm4);#endif#undef CPUID_PRINT return string_join(flags, ' '); }
开发者ID:webmaster128,项目名称:botan,代码行数:50,
示例20: ps_set_jsgf_fileint ps_set_jsgf_file(ps_decoder_t *ps, const char *name, const char *path){ fsg_model_t *fsg; jsgf_rule_t *rule; char const *toprule; jsgf_t *jsgf = jsgf_parse_file(path, NULL); float lw; int result; if (!jsgf) return -1; rule = NULL; /* Take the -toprule if specified. */ if ((toprule = cmd_ln_str_r(ps->config, "-toprule"))) { char *ruletok; ruletok = string_join("<", toprule, ">", NULL); rule = jsgf_get_rule(jsgf, ruletok); ckd_free(ruletok); if (rule == NULL) { E_ERROR("Start rule %s not found/n", toprule); return -1; } } else { /* Otherwise, take the first public rule. */ jsgf_rule_iter_t *itor; for (itor = jsgf_rule_iter(jsgf); itor; itor = jsgf_rule_iter_next(itor)) { rule = jsgf_rule_iter_rule(itor); if (jsgf_rule_public(rule)) { jsgf_rule_iter_free(itor); break; } } if (rule == NULL) { E_ERROR("No public rules found in %s/n", path); return -1; } } lw = cmd_ln_float32_r(ps->config, "-lw"); fsg = jsgf_build_fsg(jsgf, rule, ps->lmath, lw); result = ps_set_fsg(ps, name, fsg); fsg_model_free(fsg); return result;}
开发者ID:chand3040,项目名称:pocketsphinx.js,代码行数:47,
示例21: ps_expand_file_configstatic voidps_expand_file_config(ps_decoder_t *ps, const char *arg, const char *extra_arg, const char *hmmdir, const char *file){ const char *val; if ((val = cmd_ln_str_r(ps->config, arg)) != NULL) { cmd_ln_set_str_extra_r(ps->config, extra_arg, val); } else if (hmmdir == NULL) { cmd_ln_set_str_extra_r(ps->config, extra_arg, NULL); } else { char *tmp = string_join(hmmdir, "/", file, NULL); if (file_exists(tmp)) cmd_ln_set_str_extra_r(ps->config, extra_arg, tmp); else cmd_ln_set_str_extra_r(ps->config, extra_arg, NULL); ckd_free(tmp); }}
开发者ID:Amponti,项目名称:SpeechRecognition_DE1-SOC,代码行数:18,
示例22: populate_entry_configvoid populate_entry_config(struct s_gui_data *gui_data){ monconf_entry *entry = gui_data->curr_entry; if(gui_data->curr_entry) { char *ignores = string_join(entry->ignore_files); gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(gui_data->builder,"entryIgnores")), ignores); free(ignores); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(gtk_builder_get_object(gui_data->builder,"filechooserPath")), gui_data->curr_entry->file_name); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxRecursive"))->toggle_button), entry->recursive); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnCreate"))->toggle_button), entry->events & MON_CREATE); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnModify"))->toggle_button), entry->events & MON_MODIFY); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnDelete"))->toggle_button), entry->events & MON_DELETE); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnAttrib"))->toggle_button), entry->events & MON_ATTRIB); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnMovedFrom"))->toggle_button), entry->events & MON_MOVED_FROM); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnMovedTo"))->toggle_button), entry->events & MON_MOVED_TO); populate_entry_actions(gui_data, entry); } else { gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(gui_data->builder,"entryIgnores")), ""); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(gtk_builder_get_object(gui_data->builder,"filechooserPath")), NULL); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxRecursive"))->toggle_button), 0); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnCreate"))->toggle_button), 0); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnModify"))->toggle_button), 0); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnDelete"))->toggle_button), 0); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnAttrib"))->toggle_button), 0); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnMovedFrom"))->toggle_button), 0); gtk_toggle_button_set_active(&(GTK_CHECK_BUTTON(gtk_builder_get_object(gui_data->builder,"checkboxOnMovedTo"))->toggle_button), 0); populate_entry_actions(gui_data, NULL); } }
开发者ID:hiddendog,项目名称:monarqui,代码行数:44,
示例23: path_list_search/* FIXME: This should go in libsphinxutil */static char *path_list_search(glist_t paths, char *path){ gnode_t *gn; for (gn = paths; gn; gn = gnode_next(gn)) { char *fullpath; FILE *tmp; fullpath = string_join(gnode_ptr(gn), "/", path, NULL); tmp = fopen(fullpath, "r"); if (tmp != NULL) { fclose(tmp); return fullpath; } else ckd_free(fullpath); } return NULL;}
开发者ID:AaronZhangL,项目名称:pocketsphinx.js,代码行数:21,
示例24: populate_entry_actionsvoid populate_entry_actions(struct s_gui_data *gui_data, monconf_entry *conf_entry){ GtkTreeModel *modelEntries; GtkTreeIter iter; monaction_entry *action_entry = NULL; monconf_action_entry *conf_action_entry = NULL; gtk_list_store_clear(gui_data->listStoreEntryActions); GList *action_keys = g_hash_table_get_values(gui_data->conf->actionMap); GList *item = g_list_first(action_keys); char *str_globs; while(item) { action_entry = (monaction_entry *)item->data; str_globs = NULL; if(conf_entry != NULL) { conf_action_entry = monconf_action_entry_get_by_name(conf_entry, action_entry->name); if(conf_action_entry != NULL) str_globs = string_join(conf_action_entry->globs); } gtk_list_store_append(gui_data->listStoreEntryActions, &iter); gtk_list_store_set(gui_data->listStoreEntryActions,&iter, COL_ACTION_ENTRY_ENABLED, (gboolean)(conf_action_entry != NULL), COL_ACTION_ENTRY_NAME, (gchar *)action_entry->name, COL_ACTION_ENTRY_GLOBS, (conf_action_entry != NULL ? str_globs : ""), COL_ACTION_ENTRY_CREATE, (conf_action_entry != NULL ? (gboolean)(conf_action_entry->events & MON_CREATE) : (gboolean)0), COL_ACTION_ENTRY_MODIFY, (conf_action_entry != NULL ? (gboolean)(conf_action_entry->events & MON_MODIFY) : (gboolean)0), COL_ACTION_ENTRY_DELETE, (conf_action_entry != NULL ? (gboolean)(conf_action_entry->events & MON_DELETE) : (gboolean)0), COL_ACTION_ENTRY_ATTRIBS, (conf_action_entry != NULL ? (gboolean)(conf_action_entry->events & MON_ATTRIB) : (gboolean)0), COL_ACTION_ENTRY_MOVED_FROM, (conf_action_entry != NULL ? (gboolean)(conf_action_entry->events & MON_MOVED_FROM) : (gboolean)0), COL_ACTION_ENTRY_MOVED_TO, (conf_action_entry != NULL ? (gboolean)(conf_action_entry->events & MON_MOVED_TO) : (gboolean)0), -1 ); if(str_globs) free(str_globs); item = item->next; } g_list_free(action_keys);}
开发者ID:hiddendog,项目名称:monarqui,代码行数:40,
示例25: detect_sph2pipestatic intdetect_sph2pipe(sphinx_wave2feat_t *wtf){ FILE *fh; char *cmdline; int rv; /* Determine if it's NIST file and get parameters. */ if ((rv = open_nist_file(wtf, wtf->infile, NULL, FALSE)) != TRUE) return rv; /* Now popen it with sph2pipe. */ cmdline = string_join("sph2pipe -f raw '", wtf->infile, "'", NULL); if ((fh = popen(cmdline, "r")) == NULL) { E_ERROR_SYSTEM("Failed to popen(/"sph2pipe -f raw '%s'/")", wtf->infile); ckd_free(cmdline); return -1; } wtf->infh = fh; return TRUE;}
开发者ID:kirpen,项目名称:pocketsphinx.js,代码行数:22,
示例26: lexical_model_rescore_functionfloat lexical_model_rescore_function(const hypothesis* h, unsigned int id){ information* info = h->get_input(); const std::vector<const symbol*>& source = *info->get_sentence(); std::pair<unsigned int, unsigned int> span = h->get_span(); // check if is the last chart cell if (span.first != 0 || span.second != source.size()) { return 0.0f; } configuration* config = configuration::get_instance(); model* system_model = config->get_model(); language_model* lm = system_model->get_language_model(id); lexical_model* lex = static_cast<lexical_model*>(lm); lexical_model_type type = lex->get_model_type(); std::vector<const std::string*> target; std::vector<std::pair<unsigned int, unsigned int>> full_align; std::vector<const std::string*> input; unsigned int source_size = source.size(); unsigned int target_size = target.size(); unsigned int window_size = lex->get_window_size(); unsigned int rwin = window_size / 2; unsigned int lwin = window_size - rwin - 1; unsigned int align_size; float score = 0.0f; output_hypothesis(h, target); output_full_alignment(h, full_align); input.reserve(window_size + 1); align_size = full_align.size(); symbol_table* symtab = symbol_table::get_instance(); const symbol* bos = symtab->search_symbol("<s>"); const symbol* eos = symtab->search_symbol("</s>"); const symbol* null = symtab->search_symbol("<null>"); if (type == lexical_model_type::source_to_target) { std::vector<std::vector<int>> align_vec; align_vec.resize(source_size); for (unsigned int i = 0; i < align_size; i++) { auto& pair = full_align[i]; align_vec[pair.first].push_back(pair.second); } for (unsigned int i = 0; i < source_size; i++) { auto& tgt_align = align_vec[i]; unsigned int vec_size = tgt_align.size(); for (unsigned int j = 0; j < lwin; j++) { int index = i - lwin + j; if (index < 0) input.push_back(bos->get_name()); else input.push_back(source[index]->get_name()); } input.push_back(source[i]->get_name()); for (unsigned int j = 0; j < rwin; j++) { int index = i + 1 + j; if (index >= static_cast<int>(source_size)) input.push_back(eos->get_name()); else input.push_back(source[index]->get_name()); } if (vec_size == 0) { input.push_back(null->get_name()); } else { std::string word; std::vector<std::string> str_vec; str_vec.reserve(vec_size); const symbol* sym; for (unsigned int j = 0; j < vec_size; j++) { str_vec.push_back(*target[tgt_align[j]]); } string_join(str_vec, "+++", word); sym = symtab->search_symbol(word); input.push_back(sym->get_name()); } score += lex->probability(input.data()); input.clear(); } } else { std::vector<std::vector<int>> align_vec; align_vec.resize(target_size); for (unsigned int i = 0; i < align_size; i++) { auto& pair = full_align[i]; align_vec[pair.second].push_back(pair.first); } for (unsigned int i = 0; i < target_size; i++) {//.........这里部分代码省略.........
开发者ID:playinf,项目名称:infdecoder,代码行数:101,
示例27: givoid CG_GGVar::add(CallableData* p,const String& s,int f){ CG_GGVar& gi(CG_GGVar::current()); arr_1t<String> ap = string_split(s, "."); size_t n = ap.size(); if(n==0) { return; } if(n==1) { gi[s].kptr(p); return; } if(f!=0) { gi[ap[n-1]].kptr(p); } VariantTable *pt=&gi; for(size_t i=0;i<n;i++) { if(i+1==n) { if (i == 1 && _bInited) { gi[s].kptr(p); } (*pt)[ap[i]].kptr(p); break; } intptr_t d=pt->find1(ap[i]); if(d>=0) { pt=pt->get(d).second.ptr<VariantTable>(); if (!pt) { return; } } else { String libname=string_join(ap.begin(),ap.begin()+i+1,"."); DataPtrT<CallableModule> tb = new CallableModule(libname); (*pt)[ap[i]].kptr(tb);pt=&tb->value; if (i == 1 && _bInited) { gi[ap[0]+"."+ap[1]].kptr(tb); } } }}
开发者ID:xuanya4202,项目名称:ew_base,代码行数:64,
示例28: fopen_compFILE *fopen_comp(const char *file, const char *mode, int32 * ispipe){ FILE *fp;#ifndef HAVE_POPEN *ispipe = 0; /* No popen() on WinCE */#else /* HAVE_POPEN */ int32 isgz; guess_comptype(file, ispipe, &isgz);#endif /* HAVE_POPEN */ if (*ispipe) {#ifndef HAVE_POPEN /* Shouldn't get here, anyway */ E_FATAL("No popen() on WinCE/n");#else if (strcmp(mode, "r") == 0) { char *command; switch (isgz) { case COMP_GZIP: command = string_join("gunzip" EXEEXT, " -c ", file, NULL); break; case COMP_COMPRESS: command = string_join("zcat" EXEEXT, " ", file, NULL); break; case COMP_BZIP2: command = string_join("bunzip2" EXEEXT, " -c ", file, NULL); break; default: command = NULL; /* Make compiler happy. */ E_FATAL("Unknown compression type %d/n", isgz); } if ((fp = popen(command, mode)) == NULL) { E_ERROR_SYSTEM("Failed to open a pipe for a command '%s' mode '%s'", command, mode); ckd_free(command); return NULL; } ckd_free(command); } else if (strcmp(mode, "w") == 0) { char *command; switch (isgz) { case COMP_GZIP: command = string_join("gzip" EXEEXT, " > ", file, NULL); break; case COMP_COMPRESS: command = string_join("compress" EXEEXT, " -c > ", file, NULL); break; case COMP_BZIP2: command = string_join("bzip2" EXEEXT, " > ", file, NULL); break; default: command = NULL; /* Make compiler happy. */ E_FATAL("Unknown compression type %d/n", isgz); } if ((fp = popen(command, mode)) == NULL) { E_ERROR_SYSTEM("Failed to open a pipe for a command '%s' mode '%s'", command, mode); ckd_free(command); return NULL; } ckd_free(command); } else { E_ERROR("Compressed file operation for mode %s is not supported", mode); return NULL; }#endif /* HAVE_POPEN */ } else { fp = fopen(file, mode); } return (fp);}
开发者ID:andrenatal,项目名称:pocketsphinx-gecko,代码行数:75,
示例29: mainintmain(int argc, char *argv[]){ if (argc < 2) return 1; if (!strcmp(argv[1], "string_join")) { char *foo = string_join("bar", "baz", "quux", NULL); if (strcmp(foo, "barbazquux") != 0) { printf("%s != barbazquux/n", foo); return 1; } foo = string_join("hello", NULL); if (strcmp(foo, "hello") != 0) { printf("%s != hello/n", foo); return 1; } return 0; } else if (!strcmp(argv[1], "fread_line")) { FILE *fp = fopen(TESTDATADIR "/_fread_line.txt", "r"); char *line; size_t len; if (fp == NULL) { perror("Failed to open " TESTDATADIR "/_fread_line.txt"); return 1; } line = fread_line(fp, &len); printf("len = %d orig = %d/n", len, strlen("Hello world!/n")); if (strcmp(line, "Hello world!/n") != 0) { printf("'%s' != 'Hello world!//n'/n", line); return 1; } ckd_free(line); line = fread_line(fp, &len); /* A line of exactly 127 characters. */ printf("len = %d orig = %d/n", len, strlen("123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456/n")); if (strcmp(line, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456/n") != 0) { printf("'%s' != '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456//n'/n", line); return 1; } ckd_free(line); /* A very long line. */ line = fread_line(fp, &len); printf("len = %d orig = %d/n", len, strlen("All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. /n")); if (strcmp(line, "All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. /n") != 0) { printf("'%s' != 'All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. All work and no play makes Jack a very dull boy. //n'/n", line); return 1; } ckd_free(line); line = fread_line(fp, &len); if (line != NULL) { printf("%p != NULL/n", line); return 1; } } else if (!strcmp(argv[1], "string_trim")) { char *foo = ckd_salloc("/t foo bar baz /n"); string_trim(foo, STRING_BOTH); if (strcmp(foo, "foo bar baz") != 0) { printf("'%s' != 'foo bar baz'/n", foo); return 1; } string_trim(foo, STRING_BOTH); if (strcmp(foo, "foo bar baz") != 0) { printf("'%s' != 'foo bar baz'/n", foo); return 1; } strcpy(foo, "foo/nbar/n/n"); string_trim(foo, STRING_END); if (strcmp(foo, "foo/nbar") != 0) { printf("'%s' != 'foo//nbar'/n", foo); return 1; } strcpy(foo, " /t /t foobar/n"); string_trim(foo, STRING_START); if (strcmp(foo, "foobar/n") != 0) { printf("'%s' != 'foobar//n'/n", foo); return 1; } } else if (!strcmp(argv[1], "str2words")) { char *line = ckd_salloc(" foo bar baz argh"); char **words; int n; n = str2words(line, NULL, 0); if (n != 4) { printf("%d != 4/n", n); return 1; } words = ckd_calloc(n, sizeof(*words)); n = str2words(line, words, n); if (n != 4) { printf("%d != 4/n", n); return 1;//.........这里部分代码省略.........
开发者ID:AaronZhangL,项目名称:pocketsphinx.js,代码行数:101,
示例30: string_joinvoid Command::init_command_map(){ command_map["NOOP"] = [](EventHandler &, std::vector<std::string> arg) -> std::string { std::cerr << "NOOP begin" << std::endl; std::cerr << string_join(arg, "/n") << std::endl << "end" << std::endl; return "OK"; }; command_map["PLAY"] = [this](EventHandler &, std::vector<std::string> arg) -> std::string { if (arg.empty()) arg.push_back(""); try { remote->play(arg.front()); arg.erase(arg.begin()); for (auto &str : arg) remote->add(str); return "OK"; } catch(const std::exception &e) { std::cerr << e.what() << std::endl; return "ERROR"; } }; command_map["QUEUE"] = [this](EventHandler &, std::vector<std::string> arg) -> std::string { if (arg.empty()) arg.push_back(""); try { for (auto &str : arg) remote->add(str); return "OK"; } catch(const std::exception &e) { std::cerr << e.what() << std::endl; return "ERROR"; } }; command_map["NEXT"] = [this](EventHandler &, std::vector<std::string>) -> std::string { return plain_action(std::bind(&Remote::next, remote)); }; command_map["PREV"] = [this](EventHandler &, std::vector<std::string>) -> std::string { return plain_action(std::bind(&Remote::prev, remote)); }; command_map["STOP"] = [this](EventHandler &, std::vector<std::string>) -> std::string { return plain_action(std::bind(&Remote::stop, remote)); }; command_map["PAUSE"] = [this](EventHandler &, std::vector<std::string>) -> std::string { return plain_action(std::bind(&Remote::pause, remote)); }; command_map["UNPAUSE"] = [this](EventHandler &, std::vector<std::string>) -> std::string { return plain_action(std::bind(&Remote::unpause, remote)); }; command_map["SEEK"] = [this](EventHandler &, std::vector<std::string> arg) -> std::string { if (arg.empty()) throw std::logic_error("SEEK requires argument."); int time = std::strtol(arg[0].c_str(), nullptr, 0); return plain_action(std::bind(&Remote::seek, remote, time)); }; command_map["POS"] = [this](EventHandler &, std::vector<std::string>) -> std::string { try { auto pos = remote->pos(); return stringify(static_cast<int>(pos.first), " ", static_cast<int>(pos.second)); } catch (const std::exception &e) { std::cerr << e.what() << std::endl; return "ERROR"; } }; command_map["DIE"] = [this](EventHandler &event, std::vector<std::string>) -> std::string { event.kill(); return "OK"; }; command_map["TITLE"] = [this](EventHandler &, std::vector<std::string>) -> std::string { return metadata_action(*remote, [](const FF::MediaInfo &info) { return info.title; }); }; command_map["ARTIST"] = [this](EventHandler &, std::vector<std::string>) -> std::string { return metadata_action(*remote, [](const FF::MediaInfo &info) { return info.artist; }); }; command_map["ALBUM"] = [this](EventHandler &, std::vector<std::string>) -> std::string { return metadata_action(*remote, [](const FF::MediaInfo &info) { return info.album; });//.........这里部分代码省略.........
开发者ID:Themaister,项目名称:umusd,代码行数:101,
注:本文中的string_join函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ string_length函数代码示例 C++ string_is_equal函数代码示例 |