系统函数C字符串的实现(13):wcscpy与wcslen

实现宽字符的拷贝与计算宽字符的长度

int mywcslen(wchar_t *wstr)
{
	int i = 0;
	while (*wstr!=L'\0')
	{
		i++;
		wstr++;
	}
	return i;
}
wchar_t *mywcscpy(wchar_t *dest, const wchar_t *source)
{
	if (NULL==dest||NULL==source)
	{
		return NULL;
	}
	else
	{
		wchar_t *p = dest;
		while (*dest++=*source++)
		{
		}
		return p;
	}
}
void main()
{
	setlocale(LC_ALL, "zh-CN");//设定中文
	wchar_t *p = (wchar_t[100]){ 0 };//栈上分配上数组   c99语法
	wchar_t wch2[100] = L"黑鹰-rocket";

	int wlength = mywcslen(wch2);
	mywcscpy(p, wch2);
	int wplength = mywcslen(p);//拷贝之后的长度也为9
	wprintf(L"\n长度:wlength=%d    wplength=%d    字符串(p)=%ls\n", wlength, wplength, p);
	system("pause");
}

版权声明:本文为博主原创文章,欢迎指出代码不良之处,及提出代码优化方案。欢迎指点,黑夜代码,拼命奋斗,努力更新中......

时间: 2024-11-10 10:31:02

系统函数C字符串的实现(13):wcscpy与wcslen的相关文章

SQL Server系统函数:字符串函数

原文:SQL Server系统函数:字符串函数 1.字符转化为ASCII,把ASCII转化为字符,注意返回的值是十进制数 select ASCII('A'),ASCII('B'),ASCII('a'),ASCII('b'),ASCII('?') select CHAR(65),CHAR(66),CHAR(97),CHAR(98),CHAR(63) 2.unicode字符转化为整数,把整数转化为unicode字符 select UNICODE('A'),UNICODE('B'),UNICODE('

SQLSERVER常见系统函数之字符串函数(一)

好久没有写博客了,这段时间准备写一下字符串函数 QQ群: 499092562:欢迎交流 字符串函数: 1.LEN(需要获取长度的字符串) 返回:字符串的长度 示例: SELECT LEN('小搬运工很帅!') 2.RIGHT(需要被从右边截取的字符串,截取的开始下标,截取的长度) 返回:右边的字符串 示例: SELECT RIGHT('小搬运工',2,2) ‘小搬运工’从右边数第二个下标开始,长度为二的字符串 3.CHARINDEX(父字符串,需要查找位置的子字符串,从哪个位置开始找) 示例:S

系统函数C字符串的实现(5):strdup

strdup不需要分配内存空间,自动实现字符串的拷贝 char *mystrdup(char *str) { char*p = malloc(sizeof(char)*(strlen(str) + 1)); strcpy(p, str);//拷贝 return p; } /*函数名: strdup 功 能: 将串拷贝到新建的位置处 用 法: char *strdup(char *str); */ //strcpy的变形 void main() { char str[14] = "rocket-黑

系统函数C字符串的实现(12):strset

//函数名: strset // 功 能 : 将一个串中的所有字符都设为指定字符 // 用 法 : char *strset(char *str, char c); char *mystrset(char *str, char c) { for (char* pnew = str; *pnew != '\0'; *pnew=c,pnew++) { } } //递归方式 void *mystrsetdg(char *str, char c) { if (*str=='\0') { return N

系统函数C字符串的实现(6):strpbrk

//函数名: strpbrk // 功 能 : 在串中查找给定字符集中的字符 // 用 法 : char *strpbrk(char *str1, char *str2); char *mystrpbrk(char *str1, char *str2) { while (*str1!='\0') //循环str1 { char *p = str2;//备份,反复循环 防止副本 while (*p!='\0') { if (*p==*str1) { return str1; } p++; } st

系统函数C字符串的实现(7):wcsrev

实现宽字符串的逆转 //将空格处理成字符串结束标志 void set0(wchar_t wstr[20]) { wchar_t *p = wstr; while (*p != L'\0') { if (*p == L' ') { *p = L'\0'; } p++; } } //结束标志各位空格 void set1(wchar_t wstr[20]) { for (int i = 0; i < 7;i++) { if (wstr[i]==L'\0') { wstr[i] = ' '; } } }

系统函数C字符串的实现(10):strcat

字符串拼接strcat char *mystrcat(char *dest,const char *source) { char *pstart = dest; while (*pstart != '\0') { pstart++; } //从尾部 while ((*pstart++)=(*source++)) { } } void main() { char str1[22] = "zhouruifu"; char str2[11] = "-rocket"; pr

系统函数C字符串的实现(11):strchr

字符查找函数strchr char *mystrchr(const char *str, const char c) { char *p = NULL; for (char*newp = str; *newp != '\0'; newp++) { if (*newp==c) { p = newp;//一个一个的查找 break; } } return p; } char *mystrchrdg(const char *str, const char c) { if (*str!='\0') {

PHP自定义函数+系统函数库

全局变量 $n = 5; //全局变量 function fun1(){ global $n; echo '我在函数体内也可以调用全局变量n,它的值是:' , $n;//5 $n++; } fun1(); echo '<hr>'; echo $n;//6 $n = 6; function fun1(){ echo '变量的值是:' , $GLOBALS['n']; $GLOBALS['n']++; } fun1(); echo $GLOBALS['n']; 不使用循环语句,来计算1~100的和