亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? str.c

?? 一套接口
?? C
字號:
static char rcsid[] = "$Id: str.c 6 2007-01-22 00:45:22Z drhanson $";#include <string.h>#include <limits.h>#include "assert.h"#include "fmt.h"#include "str.h"#include "mem.h"#define idx(i, len) ((i) <= 0 ? (i) + (len) : (i) - 1)#define convert(s, i, j) do { int len; \	assert(s); len = strlen(s); \	i = idx(i, len); j = idx(j, len); \	if (i > j) { int t = i; i = j; j = t; } \	assert(i >= 0 && j <= len); } while (0)char *Str_sub(const char *s, int i, int j) {	char *str, *p;	convert(s, i, j);	p = str = ALLOC(j - i + 1);	while (i < j)		*p++ = s[i++];	*p = '\0';	return str;}char *Str_dup(const char *s, int i, int j, int n) {	int k;	char *str, *p;	assert(n >= 0);	convert(s, i, j);	p = str = ALLOC(n*(j - i) + 1);	if (j - i > 0)		while (n-- > 0)			for (k = i; k < j; k++)				*p++ = s[k];	*p = '\0';	return str;}char *Str_reverse(const char *s, int i, int j) {	char *str, *p;	convert(s, i, j);	p = str = ALLOC(j - i + 1);	while (j > i)		*p++ = s[--j];	*p = '\0';	return str;}char *Str_cat(const char *s1, int i1, int j1,              const char *s2, int i2, int j2) {	char *str, *p;	convert(s1, i1, j1);	convert(s2, i2, j2);	p = str = ALLOC(j1 - i1 + j2 - i2 + 1);	while (i1 < j1)		*p++ = s1[i1++];	while (i2 < j2)		*p++ = s2[i2++];	*p = '\0';	return str;}char *Str_catv(const char *s, ...) {	char *str, *p;	const char *save = s;	int i, j, len = 0;	va_list ap;	va_start(ap, s);	while (s) {		i = va_arg(ap, int);		j = va_arg(ap, int);		convert(s, i, j);		len += j - i;		s = va_arg(ap, const char *);	}	va_end(ap);	p = str = ALLOC(len + 1);	s = save;	va_start(ap, s);	while (s) {		i = va_arg(ap, int);		j = va_arg(ap, int);		convert(s, i, j);		while (i < j)			*p++ = s[i++];		s = va_arg(ap, const char *);	}	va_end(ap);	*p = '\0';	return str;}char *Str_map(const char *s, int i, int j,	const char *from, const char *to) {	static char map[256] = { 0 };	if (from && to) {		unsigned c;		for (c = 0; c < sizeof map; c++)			map[c] = c;		while (*from && *to)			map[(unsigned char)*from++] = *to++;		assert(*from == 0 && *to == 0);	} else {		assert(from == NULL && to == NULL && s);		assert(map['a']);	}	if (s) {		char *str, *p;		convert(s, i, j);		p = str = ALLOC(j - i + 1);		while (i < j)			*p++ = map[(unsigned char)s[i++]];		*p = '\0';		return str;	} else		return NULL;}int Str_pos(const char *s, int i) {	int len;	assert(s);	len = strlen(s);	i = idx(i, len);	assert(i >= 0 && i <= len);	return i + 1;}int Str_len(const char *s, int i, int j) {	convert(s, i, j);	return j - i;}int Str_cmp(const char *s1, int i1, int j1,	const char *s2, int i2, int j2) {	convert(s1, i1, j1);	convert(s2, i2, j2);	s1 += i1;	s2 += i2;	if (j1 - i1 < j2 - i2) {		int cond = strncmp(s1, s2, j1 - i1);		return cond == 0 ? -1 : cond;	} else if (j1 - i1 > j2 - i2) {		int cond = strncmp(s1, s2, j2 - i2);		return cond == 0 ? +1 : cond;	} else		return strncmp(s1, s2, j1 - i1);}int Str_chr(const char *s, int i, int j, int c) {	convert(s, i, j);	for ( ; i < j; i++)		if (s[i] == c)			return i + 1;	return 0;}int Str_rchr(const char *s, int i, int j, int c) {	convert(s, i, j);	while (j > i)		if (s[--j] == c)			return j + 1;	return 0;}int Str_upto(const char *s, int i, int j,	const char *set) {	assert(set);	convert(s, i, j);	for ( ; i < j; i++)		if (strchr(set, s[i]))			return i + 1;	return 0;}int Str_rupto(const char *s, int i, int j,	const char *set) {	assert(set);	convert(s, i, j);	while (j > i)		if (strchr(set, s[--j]))			return j + 1;	return 0;}int Str_find(const char *s, int i, int j,	const char *str) {	int len;	convert(s, i, j);	assert(str);	len = strlen(str);	if (len == 0)		return i + 1;	else if (len == 1) {		for ( ; i < j; i++)			if (s[i] == *str)				return i + 1;	} else		for ( ; i + len <= j; i++)			if ((strncmp(&s[i], str, len) == 0))				return i + 1;	return 0;}int Str_rfind(const char *s, int i, int j,	const char *str) {	int len;	convert(s, i, j);	assert(str);	len = strlen(str);	if (len == 0)		return j + 1;	else if (len == 1) {		while (j > i)			if (s[--j] == *str)				return j + 1;	} else		for ( ; j - len >= i; j--)			if (strncmp(&s[j-len], str, len) == 0)				return j - len + 1;	return 0;}int Str_any(const char *s, int i, const char *set) {	int len;	assert(s);	assert(set);	len = strlen(s);	i = idx(i, len);	assert(i >= 0 && i <= len);	if (i < len && strchr(set, s[i]))		return i + 2;	return 0;}int Str_many(const char *s, int i, int j,	const char *set) {	assert(set);	convert(s, i, j);	if (i < j && strchr(set, s[i])) {		do			i++;		while (i < j && strchr(set, s[i]));		return i + 1;	}	return 0;}int Str_rmany(const char *s, int i, int j,	const char *set) {	assert(set);	convert(s, i, j);	if (j > i && strchr(set, s[j-1])) {		do			--j;		while (j >= i && strchr(set, s[j]));		return j + 2;	}	return 0;}int Str_match(const char *s, int i, int j,	const char *str) {	int len;	convert(s, i, j);	assert(str);	len = strlen(str);	if (len == 0)		return i + 1; 	else if (len == 1) {		if (i < j && s[i] == *str)			return i + 2;	} else if (i + len <= j && (strncmp(&s[i], str, len) == 0))		return i + len + 1;	return 0;}int Str_rmatch(const char *s, int i, int j,	const char *str) {	int len;	convert(s, i, j);	assert(str);	len = strlen(str);	if (len == 0)		return j + 1;	else if (len == 1) {		if (j > i && s[j-1] == *str)			return j;	} else if (j - len >= i	&& strncmp(&s[j-len], str, len) == 0)		return j - len + 1;	return 0;}void Str_fmt(int code, va_list *app,	int put(int c, void *cl), void *cl,	unsigned char flags[], int width, int precision) {	char *s;	int i, j;	assert(app && flags);	s = va_arg(*app, char *);	i = va_arg(*app, int);	j = va_arg(*app, int);	convert(s, i, j);	Fmt_puts(s + i, j - i, put, cl, flags,		width, precision);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人片综合在线| 日韩电影在线一区二区| 亚洲一区视频在线| 亚洲一线二线三线视频| 亚洲色图制服丝袜| 日韩av网站免费在线| 国产很黄免费观看久久| 97aⅴ精品视频一二三区| 欧美日韩一区视频| 中文字幕一区二区三区蜜月| 亚洲一区在线看| 国模娜娜一区二区三区| 欧美在线观看视频在线| 久久久91精品国产一区二区精品 | 亚洲最大成人综合| 精品午夜一区二区三区在线观看| 成人精品小蝌蚪| 日韩一级完整毛片| 一区二区三区不卡视频| 成人黄色电影在线| 亚洲国产高清不卡| 久久99精品一区二区三区| 欧美手机在线视频| 亚洲精品日韩一| av在线不卡免费看| 国产精品你懂的在线| 韩国女主播一区| 欧美日韩亚洲丝袜制服| 亚洲欧洲日韩av| 欧美一区欧美二区| 久久精品国产99| 久久人人爽人人爽| 国产精品18久久久| 国产精品家庭影院| 97精品久久久久中文字幕| 亚洲色图另类专区| 欧美日韩免费不卡视频一区二区三区| 国产精品污网站| 成人激情小说网站| 亚洲人成小说网站色在线| 91精品1区2区| 欧美bbbbb| 久久嫩草精品久久久精品| 国产一区二区三区电影在线观看| 久久在线观看免费| 色网站国产精品| 日本不卡视频在线| 欧美激情中文不卡| 91成人免费在线| 丝袜亚洲另类欧美| 中文字幕一区二区不卡| 4438亚洲最大| 成人精品亚洲人成在线| 蜜臀av性久久久久av蜜臀妖精| 国产精品美女久久久久高潮| 69久久99精品久久久久婷婷| 成人性生交大片免费看中文| 亚洲123区在线观看| 久久品道一品道久久精品| 欧美性生交片4| av电影一区二区| 久久99热这里只有精品| 亚洲欧洲日产国码二区| 日本一区二区免费在线观看视频| 欧美视频日韩视频在线观看| 成人综合在线视频| 国产综合色产在线精品| 日本午夜精品一区二区三区电影| 日韩毛片高清在线播放| 国产亚洲欧洲997久久综合 | 中文字幕在线视频一区| 国产亚洲欧美日韩在线一区| 久久影院午夜论| 精品少妇一区二区| 国产网红主播福利一区二区| 久久久综合精品| 中文字幕不卡在线观看| 久久久久青草大香线综合精品| 欧美狂野另类xxxxoooo| 欧美天堂一区二区三区| 欧美这里有精品| 久久久一区二区| 精品久久五月天| 国产欧美一区二区三区在线老狼| 久久精品欧美一区二区三区不卡| 久久久久久**毛片大全| 亚洲国产高清在线观看视频| 亚洲精品视频在线| 五月激情综合婷婷| 国内精品视频一区二区三区八戒| 国产高清精品网站| 色婷婷综合视频在线观看| 欧美三级电影网站| 日韩欧美在线123| 欧美国产日产图区| 首页国产欧美久久| 国产成人在线网站| 欧美精品在线观看一区二区| 久久亚洲精精品中文字幕早川悠里| 日本一区二区综合亚洲| 亚洲自拍偷拍综合| 国产成人免费在线视频| 精品视频一区三区九区| 久久九九久精品国产免费直播| 一区二区三区在线观看国产| 九九久久精品视频| 欧美日韩综合一区| 亚洲综合在线免费观看| 国产成人精品一区二区三区四区| 5月丁香婷婷综合| 亚洲最大的成人av| 不卡视频在线观看| 久久精品人人做人人综合 | 欧美一区二区三区不卡| 国产欧美日韩一区二区三区在线观看| 亚洲精品午夜久久久| 成人激情黄色小说| 久久免费偷拍视频| 精彩视频一区二区| 精品日韩成人av| 国内精品在线播放| 久久美女艺术照精彩视频福利播放| 日韩av一二三| 国产亚洲一区二区三区四区 | 欧美va亚洲va| 国内成人精品2018免费看| 日韩三级伦理片妻子的秘密按摩| 日韩中文字幕区一区有砖一区 | 色狠狠综合天天综合综合| 五月天国产精品| 欧美成va人片在线观看| 九九九精品视频| 中文字幕乱码日本亚洲一区二区 | 国产欧美一区二区精品婷婷| 国产69精品一区二区亚洲孕妇| 自拍偷拍亚洲综合| 欧美日本一区二区在线观看| 国产精品影视在线观看| 亚洲视频图片小说| 欧美精品v日韩精品v韩国精品v| 久久精品国产一区二区三区免费看| 日韩欧美一级二级三级久久久| 国产成人在线观看| 亚洲动漫第一页| 国产精品第13页| 欧美一级精品大片| 91小视频免费观看| 久久国产精品免费| 亚洲一区免费视频| 久久婷婷成人综合色| 欧美喷水一区二区| 99久久久免费精品国产一区二区| 免费人成黄页网站在线一区二区| 国产精品国产自产拍高清av| 9191成人精品久久| 91黄视频在线| 99久久国产综合精品麻豆| 国产在线精品一区二区| 日韩中文字幕麻豆| 三级亚洲高清视频| 亚洲国产成人高清精品| 亚洲欧美一区二区三区久本道91 | 精品一区二区三区的国产在线播放| 亚洲柠檬福利资源导航| 久久九九99视频| 久久一区二区三区四区| 精品国产一区二区在线观看| 在线播放亚洲一区| 色老汉一区二区三区| 91年精品国产| 日本精品一区二区三区高清| 99精品国产一区二区三区不卡| 99精品偷自拍| 在线观看91精品国产入口| 欧美影院午夜播放| 91精品国产手机| 欧美精品一区二区高清在线观看| 91精品国产一区二区三区| 91精品福利在线一区二区三区 | 亚洲免费视频中文字幕| 五月综合激情日本mⅴ| 日韩成人午夜电影| 国产精一品亚洲二区在线视频| 国产99久久久久久免费看农村| 91成人国产精品| 日韩欧美综合在线| 日韩毛片精品高清免费| 欧美aⅴ一区二区三区视频| 国产综合久久久久久鬼色| 成人午夜电影网站| 884aa四虎影成人精品一区| 国产亚洲精品久| 亚洲成人777| 波多野结衣中文字幕一区| 欧美一区二区三区电影| 亚洲欧美偷拍三级| 国产传媒欧美日韩成人| 欧美电影一区二区| 一区二区三区四区蜜桃 | 久久综合国产精品|