这篇教程C++ utfrune函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中utfrune函数的典型用法代码示例。如果您正苦于以下问题:C++ utfrune函数的具体用法?C++ utfrune怎么用?C++ utfrune使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了utfrune函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: exportname/* From Plan 9 to Unix */char*exportname(char* name){ Rune r; int nr; char *uxname; char *up; if (name == 0 || (utfrune(name, altspc) == 0 && utfrune(name,altlparen) == 0 && utfrune(name,altrparen) == 0 && utfrune(name,altamp) == 0 && utfrune(name,altquote) == 0)) return name; up = uxname = emalloc(strlen(name) + 1); names[nnames++] = uxname; while(*name != 0){ nr = chartorune(&r, name); if (r == altspc) r = ' '; if (r == altlparen) r = '('; if (r == altrparen) r = ')'; if (r == altamp) r = '&'; if (r == altquote) r = '/''; up += runetochar(up, &r); name += nr; } *up = 0; return uxname;}
开发者ID:CoryXie,项目名称:nix-os,代码行数:36,
示例2: mainint main (int argc, char *argu[]) { int n; #include "argPrae.c"#include "argPost.c" findFSRS (0); for (;;) { char *x, *y, *z, **argv; int ii; n = afgetln (&x, stdin); if (n == 0) break; if (n < 0) { if (errno) eprintf ("%s:", argu[0]); else return 0; } z = x; argv = malloc (sizeof (char *) * (argc + 1)); if (!argv) eprintf ("%s:", argu[0]); for (ii = 0; ii < argc - 1; ii++) argv[ii] = argu[ii + 1]; if (ii == 0) argv[ii++] = "echo"; /* ii now index of xargument in argv */ for (; x; x = y) { int pid, c; y = utfrune (x, fs); if (y) { Rune _; int l = chartorune (&_, y); y[0] = 0; y += l; } else { y = utfrune (x, rs); if (y) y[0] = 0; y = 0; } argv[ii] = x; argv[ii + 1] = 0; pid = fork (); if (pid == 0) { execvp (argv[0], argv); eprintf ("%s: %s:", argu[0], argv[0]); } waitpid (pid, &c, 0); if (c != 0) return 1; } }}
开发者ID:strake,项目名称:coreutils,代码行数:55,
示例3: assembleintassemble(char *file){ char *ofile, *p; int i, of; ofile = alloc(strlen(file)+3); // +3 for .x/0 (x=thechar) strcpy(ofile, file); p = utfrrune(ofile, pathchar()); if(p) { include[0] = ofile; *p++ = 0; } else p = ofile; if(outfile == 0) { outfile = p; if(outfile){ p = utfrrune(outfile, '.'); if(p) if(p[1] == 's' && p[2] == 0) p[0] = 0; p = utfrune(outfile, 0); p[0] = '.'; p[1] = thechar; p[2] = 0; } else outfile = "/dev/null"; } of = create(outfile, OWRITE, 0664); if(of < 0) { yyerror("%ca: cannot create %s", thechar, outfile); errorexit(); } Binit(&obuf, of, OWRITE); pass = 1; pinit(file); Bprint(&obuf, "go object %s %s %s/n", getgoos(), thestring, getgoversion()); for(i=0; i<nDlist; i++) dodefine(Dlist[i]); yyparse(); if(nerrors) { cclean(); return nerrors; } Bprint(&obuf, "/n!/n"); pass = 2; outhist(); pinit(file); for(i=0; i<nDlist; i++) dodefine(Dlist[i]); yyparse(); cclean(); return nerrors;}
开发者ID:hfeeki,项目名称:go,代码行数:60,
示例4: etokenstatic char*etoken(char *t, char *sep){ int quoting; /* move to end of next token */ quoting = 0; while(*t!='/0' && (quoting || utfrune(sep, *t)==nil)){ if(*t != '/''){ t++; continue; } /* *t is a quote */ if(!quoting){ quoting = 1; t++; continue; } /* quoting and we're on a quote */ if(t[1] != '/''){ /* end of quoted section; absorb closing quote */ t++; quoting = 0; continue; } /* doubled quote; fold one quote into two */ t += 2; } return t;}
开发者ID:00001,项目名称:plan9port,代码行数:30,
示例5: namedtube/* * Return a tube for name segmentname!tubename, * creating any of them if mkit is true and it is not found. */Tube*namedtube(char *name, ulong msz, int n, int mkit){ char *dir, *tname; Tdir *tl; Tube *t; dumpdir("dir before namedtube"); name = strdup(name); if(name == nil) return nil; tname = utfrune(name, '!'); if(tname == nil){ dir = "tubes"; tname = name; }else{ dir = name; *tname++ = 0; } t = nil; tl = dirlookup(dir, mkit); if(tl != nil) t = tubelookup(tl, tname, msz, n, mkit); free(name); return t;}
开发者ID:CoryXie,项目名称:nix-os,代码行数:30,
示例6: getfieldsintgetfields(char *str, char **args, int max, int mflag, char *set){ Rune r; int nr, intok, narg; if(max <= 0) return 0; narg = 0; args[narg] = str; if(!mflag) narg++; intok = 0; for(;; str += nr) { nr = chartorune(&r, str); if(r == 0) break; if(utfrune(set, r)) { if(narg >= max) break; *str = 0; intok = 0; args[narg] = str + nr; if(!mflag) narg++; } else { if(!intok && mflag) narg++; intok = 1; } } return narg;}
开发者ID:29decibel,项目名称:golang,代码行数:34,
示例7: mkcmd/* * convert command to run properly on the remote machine * need to escape the quotes so they don't get stripped */intmkcmd(char *cmd, char *buf, int len){ char *p; int n, m; n = sizeof "exec rc -c '" -1; if(n >= len) return 0; strcpy(buf, "exec rc -c '"); while(p = utfrune(cmd, L'/'')){ p++; m = p - cmd; if(n + m + 1 >= len) return 0; strncpy(&buf[n], cmd, m); n += m; buf[n++] = '/''; cmd = p; } m = strlen(cmd); if(n + m + sizeof "'</dev/null>/dev/null>[2=1]" >= len) return 0; strcpy(&buf[n], cmd); strcpy(&buf[n+m], "'</dev/null>/dev/null>[2=1]"); return 1;}
开发者ID:99years,项目名称:plan9,代码行数:31,
示例8: callintcall(char *host){ char *na, *p; na = netmkaddr(host, 0, "rexexec"); p = utfrune(na, L'!'); if(!p) return -1; p = utfrune(p+1, L'!'); if(!p) return -1; if(strcmp(p, "!rexexec") != 0) return -2; return dial(na, 0, 0, 0);}
开发者ID:99years,项目名称:plan9,代码行数:16,
示例9: needsrcquoteintneedsrcquote(int c){ if(c <= ' ') return 1; if(utfrune("`^#*[]=|//?${}()'<>&;", c)) return 1; return 0;}
开发者ID:99years,项目名称:plan9,代码行数:9,
示例10: shcharin/* * search a string for unescaped characters in a pattern set */static char *shcharin(char *cp, char *pat){ Rune r; int n, vargen; vargen = 0; while(*cp){ n = chartorune(&r, cp); switch(r){ case '//': /* skip escaped char */ cp += n; n = chartorune(&r, cp); break; case '/'': /* skip quoted string */ case '"': cp = squote(cp+1, r); /* n must = 1 */ if(!cp) return 0; break; case '$': if(*(cp+1) == '{') vargen = 1; break; case '}': if(vargen) vargen = 0; else if(utfrune(pat, r)) return cp; break; default: if(vargen == 0 && utfrune(pat, r)) return cp; break; } cp += n; } if(vargen){ SYNERR(-1); fprint(2, "missing closing } in pattern generator/n"); } return 0;}
开发者ID:00001,项目名称:plan9port,代码行数:46,
示例11: validUserNameintvalidUserName(char* name){ Rune *r; static Rune invalid[] = L"#:,()"; for(r = invalid; *r != '/0'; r++){ if(utfrune(name, *r)) return 0; } return 1;}
开发者ID:99years,项目名称:plan9,代码行数:12,
示例12: outzfilestatic voidoutzfile(Biobuf *b, char *p){ char *q, *q2; while(p) { q = utfrune(p, '/'); if(windows) { q2 = utfrune(p, '//'); if(q2 && (!q || q2 < q)) q = q2; } if(!q) { zfile(b, p, strlen(p)); return; } if(q > p) zfile(b, p, q-p); p = q + 1; }}
开发者ID:gnanderson,项目名称:go,代码行数:21,
示例13: touchvoidtouch(char *name){ Bprint(&bout, "touch(%s)/n", name); if(nflag) return; if(utfrune(name, '(')) atouch(name); /* archive */ else if(chgtime(name) < 0) { perror(name); Exit(); }}
开发者ID:Earnestly,项目名称:plan9,代码行数:14,
示例14: cmdexecintcmdexec(File *f, Cmd *cp){ int i; Addr *ap; Address a; if(f && f->unread) load(f); if(f==0 && (cp->addr==0 || cp->addr->type!='"') && !utfrune("bBnqUXY!", cp->cmdc) && cp->cmdc!=('c'|0x100) && !(cp->cmdc=='D' && cp->ctext)) error(Enofile); i = lookup(cp->cmdc); if(i >= 0 && cmdtab[i].defaddr != aNo){ if((ap=cp->addr)==0 && cp->cmdc!='/n'){ cp->addr = ap = newaddr(); ap->type = '.'; if(cmdtab[i].defaddr == aAll) ap->type = '*'; }else if(ap && ap->type=='"' && ap->next==0 && cp->cmdc!='/n'){ ap->next = newaddr(); ap->next->type = '.'; if(cmdtab[i].defaddr == aAll) ap->next->type = '*'; } if(cp->addr){ /* may be false for '/n' (only) */ static Address none = {0,0,0}; if(f) addr = address(ap, f->dot, 0); else /* a " */ addr = address(ap, none, 0); f = addr.f; } } current(f); switch(cp->cmdc){ case '{': a = cp->addr? address(cp->addr, f->dot, 0): f->dot; for(cp = cp->ccmd; cp; cp = cp->next){ a.f->dot = a; cmdexec(a.f, cp); } break; default: i=(*cmdtab[i].fn)(f, cp); return i; } return 1;}
开发者ID:00001,项目名称:plan9port,代码行数:50,
示例15: collecttokenString *collecttoken(char *end){ String *s = newstring(0); int c; while((c=nextc())==' ' || c=='/t') Straddc(s, getch()); /* blanks significant for getname() */ while((c=getch())>0 && utfrune(end, c)==0) Straddc(s, c); if(c != '/n') atnl(); return s;}
开发者ID:npe9,项目名称:harvey,代码行数:14,
示例16: getwordchar*getword(char *buf, Rune delim, char *error, int line){ char *p; p = utfrune(buf, delim); if(p == 0) { if(error) print("cmd_users: %s line %d/n", error, line); return 0; } *p = '/0'; return p+1;}
开发者ID:AustenConrad,项目名称:plan-9,代码行数:14,
示例17: okchar/* Return false if 'c' is obviously not an alphanumeric character, * or if it is in the stoplist. */static Boolokchar(int c, char *stoplist) { /* * Hard to get absolutely right. Use what we know about ASCII * and assume anything above the Latin control characters is * potentially an alphanumeric. */ if(c <= ' ') return false; if(0x7F<=c && c<=0xA0) return false; if(utfrune(stoplist, c)) return false; return 1;}
开发者ID:knusbaum,项目名称:Wily,代码行数:18,
示例18: tokenizeinttokenize(char *s, char **args, int maxargs){ int nargs; for(nargs=0; nargs<maxargs; nargs++){ while(*s!='/0' && utfrune(qsep, *s)!=nil) s++; if(*s == '/0') break; args[nargs] = s; s = qtoken(s, qsep); } return nargs;}
开发者ID:00001,项目名称:plan9port,代码行数:16,
示例19: mkdirsvoidmkdirs(char *name, char *namep){ char buf[2*LEN], *p; int fd; strcpy(buf, name); for(p = &buf[namep - name]; p = utfrune(p, '/'); p++){ if(p[1] == '/0') return; *p = 0; fd = create(buf, OREAD, 0775|DMDIR); close(fd); *p = '/'; }}
开发者ID:aahud,项目名称:harvey,代码行数:16,
示例20: alnumintalnum(int c){ /* * Hard to get absolutely right. Use what we know about ASCII * and assume anything above the Latin control characters is * potentially an alphanumeric. */ if(c<=' ') return 0; if(0x7F<=c && c<=0xA0) return 0; if(utfrune("!/"#$%&'()*+,-./:;<=>[email C++ util_abort函数代码示例 C++ utf8str_to_wstring函数代码示例
|