博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文字长度判断,汉字,字母,数字,图片都算作一个长度单位
阅读量:7114 次
发布时间:2019-06-28

本文共 1973 字,大约阅读时间需要 6 分钟。

hot3.png

const int MAX_CHAT_LENGTH = 10; std::string utf8_to_gbk(const char *utf8){ int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0); std::shared_ptr
 wstr(new wchar_t[len + 1]); memset(wstr.get(), 0x00, sizeof(wchar_t) * (len + 1)); MultiByteToWideChar(CP_UTF8, 0, utf8, -1, wstr.get(), len); len = WideCharToMultiByte(CP_ACP, 0, wstr.get(), -1, NULL, 0, NULL, NULL); std::shared_ptr
 str(new char[len + 1]); memset(str.get(), 0x00, sizeof(char) * (len + 1)); WideCharToMultiByte(CP_ACP, 0, wstr.get(), -1, str.get(), len, NULL, NULL); return str.get(); }std::wstring string_to_wstring(const std::string& s){ _bstr_t t = s.c_str(); wchar_t* pwchar = (wchar_t*)t; std::wstring result = pwchar; return result;}  int string_len(std::string utf8_str){ if(utf8_str.size() > 0) {  char buf[1024] = {0};  char dest_buf[2] = {0};  memset(buf, 0, 1024);  memset(dest_buf, 0, 2);  strcpy(buf, utf8_str.c_str());  std::string convert_str;  bool convert_flag = true;  bool begin = false;  int count = 0;  for(int i = 0; i < strlen(buf); ++i)  {   if(buf[i] == '<' && buf[i+1] == 'i' && buf[i+2] == 'm' && buf[i+3] == 'a' && buf[i+4] == 'g' && buf[i+5] == 'e' && buf[i+6] == 's' && buf[i+7] == '>')   {    convert_flag = false;   }   if(convert_flag == false && buf[i] == '<' && buf[i+1] == '/' && buf[i+2] == 'i' && buf[i+3] == 'm' && buf[i+4] == 'a' && buf[i+5] == 'g' && buf[i+6] == 'e' && buf[i+7] == 's' && buf[i+8] == '>')   {    begin = true;   }   if(begin && buf[i] == '>')   {    convert_flag = true;    begin = false;    ++count;   }   if(count > 5)   {    return MAX_CHAT_LENGTH + 1;   }   if(convert_flag)   {    dest_buf[0] = buf[i];    convert_str = convert_str + dest_buf;    memset(dest_buf, 0, 2);   }  }  std::string gbk_str = utf8_to_gbk(convert_str.c_str());  std::wstring ws_str = string_to_wstring(gbk_str.c_str());  return ws_str.size(); } else {  return MAX_CHAT_LENGTH + 1; } }

转载于:https://my.oschina.net/ifraincoat/blog/418084

你可能感兴趣的文章
Nginx常用配置详解(二)——http协议配置块
查看>>
当别人加快脚步的时候,你更应该慢下来
查看>>
jsp与servlet数据传递
查看>>
mysqli操作类
查看>>
JAVA SWITCH语句
查看>>
5月共处理钓鱼网站6708个:非CN域名达6551个
查看>>
请正视网站内容中的原创与非原创
查看>>
基于协同过滤算法的推荐
查看>>
著名的UI设计九准则
查看>>
中国点头谷歌完成收购摩托罗拉
查看>>
基于Tablestore管理海量快递轨迹数据架构实现
查看>>
2. Add Two Numbers - LeetCode
查看>>
shell 判断是否存在 判断条件
查看>>
Loadrunner9.1录制脚本无法打开浏览器
查看>>
2014年,不要叹息
查看>>
对于css做的杂记
查看>>
天祥单片机学习之LED流水灯
查看>>
C#用流读写大文件
查看>>
省市下拉菜单
查看>>
如何选择日志审计系统
查看>>