读书人

关于宽字符自定义函数返回值的有关问题

发布时间: 2012-10-19 16:53:36 作者: rapoo

关于宽字符自定义函数返回值的问题(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)=字符串的长度

读书人网 >C语言

热点推荐