首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于宽字符自定义函数返回值的有关问题(wchar_t,wcscat)

2012-10-19 
关于宽字符自定义函数返回值的问题(wchar_t,wcscat)最近通过指针+字符串处理的方式学习指针的应用,在实现

关于宽字符自定义函数返回值的问题(wchar_t,wcscat)
最近通过指针+字符串处理的方式学习指针的应用,在实现了ANSI版的strcat()后,接着写wcscat(),同时在网上搜到一段代码,执行后,发现返回值似乎都不是我想要的。网摘的代码如下:

C/C++ code
wchar_t *wcscat(wchar_t *s1, const wchar_t *s2){  wchar_t *p;  wchar_t *q;  const wchar_t *r;  p = s1;  while (*p)    p++;  q = p;  r = s2;  while (*r)    *q++ = *r++;  *q = '\0';  return s1;}


调用:
C/C++ code
    wchar_t s1_t[]=L"ABCD";    wchar_t s2_t[]=L"EFGH";    wchar_t *out_t = wcscat(s1_t,s2_t);    wprintf(L"%ls\t%d\n",out_t,sizeof(out_t));


运行结果:ABCDEFGH, 可是sizeof(out_t) = 4,为什么?

[解决办法]
亲,这个是指针的长度,你应该用strlen这类的函数来看字符串的长度
[解决办法]
同意1楼,
sizeof(*) = 4
wcslen(out_t)=字符串的长度

热点排行