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

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

?? strings.c

?? wince3.0的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Copyright (c) 1995-2000 Microsoft Corporation.  All rights reserved. */
#include <corecrt.h>

#if !defined(PPC) && !defined(x86) // in the crt on PPC and x86

/****************************************************************************
memchr

The memchr function looks for the first occurance of cCharacter in the first
iLength bytes of pBuffer and stops after finding cCharacter or after checking
iLength bytes.

Arguments:
    pBuffer: pointer to buffer
    cCharacter: character to look for
    iLength: number of characters

Returns:

If successful, memchr returns a pointer to the first location of cCharacter
in pBuffer.  Otherwise, it returns NULL.

****************************************************************************/
void * memchr(const void *pBuffer, int cCharacter, size_t iLength) {
    while ((iLength != 0) && (*((char *)pBuffer) != (char)cCharacter)) {
        ((char *) pBuffer) += 1;
        iLength -= 1;
    }
    return((iLength != 0) ? (void *)pBuffer : (void *)0);
}

#endif

int _tolower(int);
int _toupper(int);

/***
*wchar_t *wcscat(dst, src) - concatenate (append) one wchar_t string to another
*
*Purpose:
*	Concatenates src onto the end of dest.	Assumes enough
*	space in dest.
*
*Entry:
*	wchar_t *dst - wchar_t string to which "src" is to be appended
*	const wchar_t *src - wchar_t string to be appended to the end of "dst"
*
*Exit:
*	The address of "dst"
*
*Exceptions:
*
*******************************************************************************/

wchar_t * wcscat(wchar_t *dst, const wchar_t *src) {
	wchar_t * cp = dst;
	while( *cp )
		cp++;			/* find end of dst */
	while( *cp++ = *src++ )
		;	/* Copy src to end of dst */
	return( dst );			/* return dst */
}

/***
*wchar_t *wcscpy(dst, src) - copy one wchar_t string over another
*
*Purpose:
*	Copies the wchar_t string src into the spot specified by
*	dest; assumes enough room.
*
*Entry:
*	wchar_t * dst - wchar_t string over which "src" is to be copied
*	const wchar_t * src - wchar_t string to be copied over "dst"
*
*Exit:
*	The address of "dst"
*
*Exceptions:
*******************************************************************************/

wchar_t * wcscpy(wchar_t *dst, const wchar_t *src) {
	wchar_t * cp = dst;
	while( *cp++ = *src++ )
		;		/* Copy src over dst */
	return( dst );
}

/***
*wchar_t *wcschr(string, c) - search a string for a wchar_t character
*
*Purpose:
*	Searches a wchar_t string for a given wchar_t character,
*	which may be the null character L'\0'.
*
*Entry:
*	wchar_t *string - wchar_t string to search in
*	wchar_t c - wchar_t character to search for
*
*Exit:
*	returns pointer to the first occurence of c in string
*	returns NULL if c does not occur in string
*
*Exceptions:
*
*******************************************************************************/

wchar_t * wcschr (const wchar_t * string, wchar_t ch) {
	while (*string && *string != (wchar_t)ch)
		string++;
	if (*string == (wchar_t)ch)
		return((wchar_t *)string);
	return(NULL);
}

/***
*wcscmp - compare two wchar_t strings,
*	 returning less than, equal to, or greater than
*
*Purpose:
*	wcscmp compares two wide-character strings and returns an integer
*	to indicate whether the first is less than the second, the two are
*	equal, or whether the first is greater than the second.
*
*	Comparison is done wchar_t by wchar_t on an UNSIGNED basis, which is to
*	say that Null wchar_t(0) is less than any other character.
*
*Entry:
*	const wchar_t * src - string for left-hand side of comparison
*	const wchar_t * dst - string for right-hand side of comparison
*
*Exit:
*	returns -1 if src <  dst
*	returns  0 if src == dst
*	returns +1 if src >  dst
*
*Exceptions:
*
*******************************************************************************/

int wcscmp (const wchar_t *src, const wchar_t *dst) {
	int ret;
	while((*src == *dst) && *dst)
		++src, ++dst;
	ret = *src - *dst;
	return (ret > 0 ? 1 : ret < 0 ? -1 : 0);
}

/***
*size_t wcscspn(string, control) - search for init substring w/o control wchars
*
*Purpose:
*	returns the index of the first character in string that belongs
*	to the set of characters specified by control.	This is equivalent
*	to the length of the length of the initial substring of string
*	composed entirely of characters not in control.  Null chars not
*	considered (wide-character strings).
*
*Entry:
*	wchar_t *string - string to search
*	wchar_t *control - set of characters not allowed in init substring
*
*Exit:
*	returns the index of the first wchar_t in string
*	that is in the set of characters specified by control.
*
*Exceptions:
*
*******************************************************************************/

size_t wcscspn (const wchar_t * string, const wchar_t * control) {
    wchar_t *str = (wchar_t *) string;
    wchar_t *wcset;
    /* 1st char in control string stops search */
    while (*str) {
        for (wcset = (wchar_t *)control; *wcset; wcset++)
            if (*wcset == *str)
                return str - string;
        str++;
    }
    return str - string;
}


/***
*wchar_t *_wcsdup(string) - duplicate string into malloc'd memory
*
*Purpose:
*	Allocates enough storage via malloc() for a copy of the
*	string, copies the string into the new memory, and returns
*	a pointer to it (wide-character).
*
*Entry:
*	wchar_t *string - string to copy into new memory
*
*Exit:
*	returns a pointer to the newly allocated storage with the
*	string in it.
*
*	returns NULL if enough memory could not be allocated, or
*	string was NULL.
*
*Uses:
*
*Exceptions:
*
*******************************************************************************/

wchar_t * _wcsdup (const wchar_t * string) {
	wchar_t *memory;
	if (!string)
		return(NULL);
	if (memory = (wchar_t *) LocalAlloc(0, (wcslen(string)+1) * sizeof(wchar_t)))
		return(wcscpy(memory,string));
	return(NULL);
}

char * _strdup (const char * string) {
	char *memory;
	if (!string)
		return(NULL);
	if (memory = (char *) LocalAlloc(0, strlen(string)+1))
		return(strcpy(memory,string));
	return(NULL);
}

int _stricmp(const char *str1, const char *str2) {
	int ch1, ch2;
    for (;*str1 && *str2; str1++, str2++) {
        ch1 = _tolower(*str1); 
        ch2 = _tolower(*str2);
        if (ch1 != ch2)
            return ch1 - ch2;
    }
    // Check last character.
    return _tolower(*str1) - _tolower(*str2);
}

int _strnicmp(const char *psz1, const char *psz2, size_t cb) {
    int ch1, ch2 = 0; // Zero for case cb = 0.
    while (cb--) {
        ch1 = _tolower(*(psz1++)); 
        ch2 = _tolower(*(psz2++));
        if (!ch1 || (ch1 != ch2))
        	break;
    }
    return (ch1 - ch2);
}

/***
*wcslen - return the length of a null-terminated wide-character string
*
*Purpose:
*	Finds the length in wchar_t's of the given string, not including
*	the final null wchar_t (wide-characters).
*
*Entry:
*	const wchar_t * wcs - string whose length is to be computed
*
*Exit:
*	length of the string "wcs", exclusive of the final null wchar_t
*
*Exceptions:
*
*******************************************************************************/

size_t wcslen (const wchar_t * wcs) {
	const wchar_t *eos = wcs;
	while( *eos++ )
		;
	return( (size_t)(eos - wcs - 1) );
}

/***
*wchar_t *wcsncat(front, back, count) - append count chars of back onto front
*
*Purpose:
*	Appends at most count characters of the string back onto the
*	end of front, and ALWAYS terminates with a null character.
*	If count is greater than the length of back, the length of back
*	is used instead.  (Unlike wcsncpy, this routine does not pad out
*	to count characters).
*
*Entry:
*	wchar_t *front - string to append onto
*	wchar_t *back - string to append
*	size_t count - count of max characters to append
*
*Exit:
*	returns a pointer to string appended onto (front).
*
*Uses:
*
*Exceptions:
*
*******************************************************************************/

wchar_t * wcsncat(wchar_t * front, const wchar_t * back, size_t count) {
	wchar_t *start = front;
	while (*front++)
		;
	front--;
	while (count--)
		if (!(*front++ = *back++))
			return(start);
	*front = L'\0';
	return(start);
}

/***
*int wcsncmp(first, last, count) - compare first count chars of wchar_t strings
*
*Purpose:
*	Compares two strings for lexical order.  The comparison stops
*	after: (1) a difference between the strings is found, (2) the end
*	of the strings is reached, or (3) count characters have been
*	compared (wide-character strings).
*
*Entry:
*	wchar_t *first, *last - strings to compare
*	size_t count - maximum number of characters to compare
*
*Exit:
*	returns <0 if first < last
*	returns  0 if first == last
*	returns >0 if first > last
*
*Exceptions:
*
*******************************************************************************/

int wcsncmp(const wchar_t * first, const wchar_t * last, size_t count) {
	if (!count)
		return(0);
	while (--count && *first && *first == *last) {
		first++;
		last++;
	}
	return((int)(*first - *last));
}

/***
*wchar_t *wcsncpy(dest, source, count) - copy at most n wide characters
*
*Purpose:
*	Copies count characters from the source string to the
*	destination.  If count is less than the length of source,
*	NO NULL CHARACTER is put onto the end of the copied string.
*	If count is greater than the length of sources, dest is padded
*	with null characters to length count (wide-characters).
*
*
*Entry:
*	wchar_t *dest - pointer to destination
*	wchar_t *source - source string for copy
*	size_t count - max number of characters to copy
*
*Exit:
*	returns dest
*
*Exceptions:
*
*******************************************************************************/

wchar_t * wcsncpy(wchar_t * dest, const wchar_t * source, size_t count) {
	wchar_t *start = dest;
	while (count && (*dest++ = *source++))	  /* copy string */
		count--;
	if (count)				/* pad out with zeroes */
		while (--count)
			*dest++ = L'\0';
	return(start);
}

/***
*wchar_t *_wcsnset(string, val, count) - set at most count characters to val
*
*Purpose:
*	Sets the first count characters of string the character value.
*	If the length of string is less than count, the length of
*	string is used in place of n (wide-characters).
*
*Entry:
*	wchar_t *string - string to set characters in
*	wchar_t val - character to fill with
*	size_t count - count of characters to fill
*
*Exit:
*	returns string, now filled with count copies of val.
*
*Exceptions:
*
*******************************************************************************/

wchar_t * _wcsnset (wchar_t * string, wchar_t val, size_t count) {
	wchar_t *start = string;
	while (count-- && *string)
		*string++ = val;
	return(start);
}

char * _strnset (char * string, int val, size_t count) {
	char *start = string;
	while (count-- && *string)
		*string++ = val;
	return(start);
}

/***
*wchar_t *wcspbrk(string, control) - scans string for a character from control
*
*Purpose:
*	Returns pointer to the first wide-character in
*	a wide-character string in the control string.
*
*Entry:
*	wchar_t *string - string to search in
*	wchar_t *control - string containing characters to search for
*
*Exit:
*	returns a pointer to the first character from control found
*	in string.
*	returns NULL if string and control have no characters in common.
*
*Exceptions:
*
*******************************************************************************/

wchar_t * wcspbrk(const wchar_t * string, const wchar_t * control) {
    wchar_t *wcset;
    /* 1st char in control string stops search */
    while (*string) {
        for (wcset = (wchar_t *) control; *wcset; wcset++)
            if (*wcset == *string)
                return (wchar_t *) string;
        string++;
    }
    return NULL;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品久久99精品久久| 欧美视频精品在线| 欧美精品第1页| 国产精品久99| 精品亚洲porn| 欧美福利一区二区| 亚洲欧洲av在线| 精品午夜久久福利影院 | 中文字幕综合网| 黄色日韩三级电影| 欧美人成免费网站| 亚洲自拍都市欧美小说| 成人精品电影在线观看| 欧美精品一区二区久久婷婷 | 久久人人爽爽爽人久久久| 一区二区三区四区在线播放 | 日本vs亚洲vs韩国一区三区 | 成人app网站| 国产喷白浆一区二区三区| 看片的网站亚洲| 欧美一区二区三区四区高清| 一区二区三区欧美亚洲| 色综合激情久久| 亚洲黄网站在线观看| www.欧美色图| 国产精品久久久久精k8| 国产91富婆露脸刺激对白| 26uuu欧美| 国产福利不卡视频| 国产视频一区不卡| 成人免费看片app下载| 国产亚洲综合在线| 成人午夜视频在线观看| 国产精品国产精品国产专区不片| 国产成人一区在线| 中文字幕一区二区在线播放| 99麻豆久久久国产精品免费优播| 国产精品久久久久精k8| 色丁香久综合在线久综合在线观看| 成人欧美一区二区三区1314| 色综合久久综合中文综合网| 亚洲小说春色综合另类电影| 制服丝袜亚洲色图| 久久国产精品99精品国产| 精品美女被调教视频大全网站| 国产精品亚洲午夜一区二区三区| 欧美国产1区2区| 99久久婷婷国产综合精品| 亚洲精品你懂的| 欧美老女人在线| 国产美女av一区二区三区| 国产精品久久久久7777按摩| 欧美午夜精品久久久| 另类调教123区| 中文字幕第一区综合| 日本乱人伦aⅴ精品| 日韩专区中文字幕一区二区| 久久综合精品国产一区二区三区 | 蜜桃av一区二区| 国产蜜臀av在线一区二区三区| 99久久久免费精品国产一区二区| 一区二区三区日韩欧美精品| 欧美成人一区二区三区在线观看 | 美日韩一区二区| 欧美国产精品一区二区三区| 欧美午夜精品久久久久久超碰 | 亚洲福利视频一区二区| 欧美大度的电影原声| 99re这里只有精品首页| 日韩va亚洲va欧美va久久| 国产精品视频看| 91.com视频| 91在线看国产| 狠狠v欧美v日韩v亚洲ⅴ| 樱桃国产成人精品视频| 久久免费国产精品| 欧美久久久久久久久中文字幕| 国产成人在线视频网站| 日韩精品一二区| 亚洲欧洲韩国日本视频| 日韩三级.com| 在线观看日韩国产| 国产69精品久久久久毛片| 午夜精品福利视频网站| 亚洲日本一区二区| 国产欧美日韩精品一区| 日韩丝袜美女视频| 欧美日韩综合在线免费观看| 成人黄色免费短视频| 久久疯狂做爰流白浆xx| 三级不卡在线观看| 亚洲综合成人在线视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 99re热这里只有精品免费视频| 久久99蜜桃精品| 亚欧色一区w666天堂| 亚洲人123区| 国产精品入口麻豆原神| 久久久久久久久久美女| 日韩欧美国产三级| 欧美肥妇free| 欧美一区欧美二区| 欧美视频日韩视频| 欧美三级日韩在线| 欧美亚一区二区| 91成人免费在线| 日本久久电影网| 在线免费亚洲电影| 一本高清dvd不卡在线观看| 97久久精品人人爽人人爽蜜臀| 成人免费毛片片v| 成人午夜电影小说| 成人午夜私人影院| eeuss鲁一区二区三区| 丁香一区二区三区| 99久久婷婷国产| 91豆麻精品91久久久久久| 欧美性色综合网| 欧美日本一区二区| 日韩丝袜美女视频| 2021国产精品久久精品| 国产亚洲1区2区3区| 中文字幕av免费专区久久| 中文字幕中文字幕在线一区 | 欧美成人高清电影在线| 日韩美女视频在线| 精品久久久久久久久久久久久久久久久| 91麻豆精品91久久久久同性| 日韩亚洲欧美高清| 久久无码av三级| 综合欧美一区二区三区| 一区二区三区日韩| 毛片基地黄久久久久久天堂| 理论电影国产精品| 北岛玲一区二区三区四区| 91国偷自产一区二区使用方法| 欧美日韩精品高清| 久久色在线视频| 亚洲欧洲三级电影| 亚洲成人资源网| 国产精品亚洲专一区二区三区| 97久久精品人人做人人爽50路| 欧美乱熟臀69xxxxxx| 久久综合给合久久狠狠狠97色69| 国产精品人人做人人爽人人添| 亚洲一区欧美一区| 国产九色精品成人porny| 91免费精品国自产拍在线不卡| 777奇米成人网| 中文字幕不卡在线观看| 亚洲大片一区二区三区| 国产在线国偷精品产拍免费yy| 91在线视频免费91| 日韩一区二区精品在线观看| 国产精品乱码一区二区三区软件 | 777a∨成人精品桃花网| 欧美国产禁国产网站cc| 香蕉成人啪国产精品视频综合网| 国产一区久久久| 欧美日本一区二区三区| 亚洲欧洲av在线| 久久av老司机精品网站导航| 色婷婷久久久久swag精品| 久久噜噜亚洲综合| 图片区小说区国产精品视频| 成人国产精品视频| 欧美成人a在线| 亚洲chinese男男1069| 成人av资源在线观看| 精品99久久久久久| 五月开心婷婷久久| 欧美自拍偷拍一区| 亚洲欧洲一区二区在线播放| 国产中文字幕精品| 欧美一区二区人人喊爽| 亚洲伦理在线免费看| 成人av资源站| 国产欧美日韩综合精品一区二区| 日韩电影免费一区| 欧美日韩国产首页在线观看| 亚洲欧美一区二区久久| 成人精品国产免费网站| 久久精品视频免费观看| 韩国毛片一区二区三区| 欧美一区二区三区视频| 性感美女极品91精品| 欧美日韩中字一区| 亚洲主播在线观看| 色综合咪咪久久| 夜夜嗨av一区二区三区中文字幕 | 精品视频免费在线| 亚洲宅男天堂在线观看无病毒| www.av精品| 国产精品传媒视频| 91丝袜国产在线播放| 亚洲精品成人在线| 色又黄又爽网站www久久| 亚洲精品亚洲人成人网| 91传媒视频在线播放| 亚洲午夜久久久久中文字幕久|