如何获取串的长度?

BlackRose 2011-08-28 02:35:32
/**
如何获取下面模板函数中data的长度?
比如当_charT为char是可以用strlen(data)
当_charT为wchar_t时可以用wcslen(data)
但是是模板的时候怎么办呢?
*/
template<typename _charT>
int length(const _charT* data)
{
}
...全文
96 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
不知起什么名 2011-08-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jackyjkchen 的回复:]
如果是想用TCHAR,没必要用模板,_tcslen

一定要用模板,自己写len函数,判断每个单元是不是0
[/Quote]

...
grefen 2011-08-28
  • 打赏
  • 举报
回复
手工写,查询空字符即可;
半兽人写程序 2011-08-28
  • 打赏
  • 举报
回复
如果你用MFC,TCHAR没问题。如果你跨平台,用STL库吧。

Michael_R123 2011-08-28
  • 打赏
  • 举报
回复
用TCHAR吧
半兽人写程序 2011-08-28
  • 打赏
  • 举报
回复
template<typename _charT>
int length(const _charT* data)
{
}
等同于
template<typename pointType>
int length(const pointType* data)
{
}
如果我这么写,有几个人还觉得这个模板和char有什么必然的联系?
而且只给指针的话,长度是无法计算的。我建议如果你只是区分字符的话,最好用函数重载就完了
int length(const char * tp){return strlen(tp)}
int length(const wchar_t* tp){return wcslen(tp)}
或者像2楼说的一样用TCHAR。

羽飞 2011-08-28
  • 打赏
  • 举报
回复
自己计算长度,到最后一个是0的时候就停止了
和char其实一样的
wintree 2011-08-28
  • 打赏
  • 举报
回复
自己用函数计算都加在一起就是了
luciferisnotsatan 2011-08-28
  • 打赏
  • 举报
回复
_tcslen 这个_tcs*系列和TCHAR这个对应。
jackyjkchen 2011-08-28
  • 打赏
  • 举报
回复
如果是想用TCHAR,没必要用模板,_tcslen

一定要用模板,自己写len函数,判断每个单元是不是0

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧