统计UTF-8编码方式字符串中的符号个数
2016-02-18 16:12
218 查看
方法1:转载自:http://blog.csdn.net/chrisniu1984/article/details/7359908
方法2:转载自:http://www.tuicool.com/articles/v67jay
int utf8_wchar_count(char *buffer, int len) { #define UTF8_ASCII(byte) ( ((unsigned char)(byte)>=0x00)&&((unsigned char)(byte)<=0x7F) ) #define UTF8_FIRST(byte) ( ((unsigned char)(byte)>=0xC0)&&((unsigned char)(byte)<=0xFD) ) #define UTF8_OTHER(byte) ( ((unsigned char)(byte)>=0x80)&&((unsigned char)(byte)<=0xBF) ) char *p = 0; long count = 0; if (!buffer || len <= 0) { return 0; } for(p=buffer; p<buffer+len; p++) { if (UTF8_ASCII(*p) || (UTF8_FIRST(*p))) { count++; } } return count; }
方法2:转载自:http://www.tuicool.com/articles/v67jay
int get_utf8_count(const std::string &input) { int length = 0; for (size_t i = 0, len = 0; i != input.length(); i += len) { unsigned char byte = input[i]; if (byte >= 0xFC) len = 6; else if (byte >= 0xF8) len = 5; else if (byte >= 0xF0) len = 4; else if (byte >= 0xE0) len = 3; else if (byte >= 0xC0) len = 2; else len = 1; length ++; } return length; }
相关文章推荐
- 以一个投票程序的实例来讲解Python的Django框架使用
- 我与小娜(15):回忆基础研究的美好时光
- 更改Edittext光标的颜色与粗细
- Windows环境下为Hadoop搭建Cygwin环境
- .Net下RabbitMQ的使用(2) -- 发送接收消息
- mysql数据库
- 使用RAML描述API文档信息的一些用法整理
- 找出一定范围内的素数(质数)
- android重复的文件复制APK META-INF许可证错误记录
- 利用GridView实现功能界面
- 安装rac的7个注意
- 一、svn 基本原理介绍
- JS格式化/压缩JSON数据
- java基于P2P的聊天和文件传输实例
- iOS-定时器
- linux下tomcat开机启动简单配置
- Linux下memcache的安装和启动(转)
- 欢迎使用CSDN-markdown编辑器
- 随笔
- Android Studio添加assets文件夹