关于宽字符自定义函数返回值的有关问题(wchar_t,wcscat)
关于宽字符自定义函数返回值的问题(wchar_t,wcscat)
最近通过指针+字符串处理的方式学习指针的应用,在实现了ANSI版的strcat()后,接着写wcscat(),同时在网上搜到一段代码,执行后,发现返回值似乎都不是我想要的。网摘的代码如下:
调用:
运行结果:ABCDEFGH, 可是sizeof(out_t) = 4,为什么?
------解决方案--------------------
亲,这个是指针的长度,你应该用strlen这类的函数来看字符串的长度
------解决方案--------------------
同意1楼,
sizeof(*) = 4
wcslen(out_t)=字符串的长度
最近通过指针+字符串处理的方式学习指针的应用,在实现了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)=字符串的长度