c/c++字符基本处理

 

//#include<cctype/ctype.h>
//处理 0xff 字符后只留下ff;//0xff前后都有空格
//-c 0xff -n 
//1、除去0x之前的空格操作
while (isblank(*coremask))
		coremask++;
//2、除去0x或0X
if (coremask[0] == '0' && ((coremask[1] == 'x') || (coremask[1] == 'X')))
		coremask += 2;
//3、除去0xff之后的空格操作
i = strlen(coremask);
while ((i > 0) && isblank(coremask[i - 1])) //i - 1略过字符串的最后一个字符'\0'
		i--;
//4、如果参数长度为空、直接返回退出
if (i == 0)
    return -1;

 

//字符:'0'-'9';'a'-'f';'A'-'F'
//输入字符并返回int型数据
static int xdigit2val(unsigned char c)
{
	int val;

	if (isdigit(c))
		val = c - '0';
	else if (isupper(c))
		val = c - 'A' + 10;
	else
		val = c - 'a' + 10;
	return val;
}

 

gettimeofday函数包含的头文件:#include<sys/time.h>
/* 获取当前毫秒时间
*/
static long get_millisecond()
{
    struct timeval tp = {0};
    gettimeofday(&tp, NULL);
    return (long)(tp.tv_sec * 1000 + tp.tv_usec / 1000);
}
//c++关于boost::tokenizer的分词应用
#include <iostream>
#include <string>
using namespace std;
#include<boost/tokenizer.hpp>
int main()
{
	 ulong startInt=0,stopInt=0;
	std::string str = "/Employees/Employee[@emplid='2222']";
	typedef boost::tokenizer<boost::char_separator<char> >
		tokenizer;
	boost::char_separator<char> sep("","/()[]\"'=<>",boost::keep_empty_tokens);
	tokenizer tokens(str, sep);
	for (tokenizer::iterator tok_iter = tokens.begin();tok_iter != tokens.end(); ++tok_iter){
		if((*tok_iter).size()>0){
			startInt=stopInt;
			stopInt+=(*tok_iter).size();
			cout<<"start:"<<startInt<<"=="<<"stop:"<<stopInt<<"=="<<"text:"<<*tok_iter<<endl;	
		}
	}
   return 0;

}


详解:
1. char_separator
char_separator有两个构造函数
1. char_separator()
使用函数 std::isspace() 来识别被弃分隔符,同时使用 std::ispunct() 来识别保留分隔符。另外,抛弃空白单词。(见例2)
2. char_separator(// 不保留的分隔符
                               const Char* dropped_delims,
                               // 保留的分隔符
                               const Char* kept_delims = 0, 
                               // 默认不保留空格分隔符, 反之加上改参数keep_empty_tokens
                               empty_token_policy empty_tokens = drop_empty_tokens) 
该函数创建一个 char_separator 对象,该对象被用于创建一个 token_iterator 或 tokenizer 以执行单词分解。dropped_delims 和 kept_delims 都是字符串,其中的每个字符被用作分解时的分隔符。当在输入序列中遇到一个分隔符时,当前单词即完成,并开始下一个新单词。dropped_delims 中的分隔符不出现在输出的单词中,而 kept_delims 中的分隔符则会作为单词输出。如果 empty_tokens 为 drop_empty_tokens, 则空白单词不会出现在输出中。如果 empty_tokens 为 keep_empty_tokens 则空白单词将出现在输出中。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值