当前位置: 首页>>代码示例>>C++>>正文


C++ buffer::count方法代码示例

本文整理汇总了C++中buffer::count方法的典型用法代码示例。如果您正苦于以下问题:C++ buffer::count方法的具体用法?C++ buffer::count怎么用?C++ buffer::count使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在buffer的用法示例。


在下文中一共展示了buffer::count方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: encode

int html_encoder::encode(const char* string, size_t len, buffer& buf)
{
	const char* src = string;
	const char* end = string + len;

	// Compute bytes needed.
	size_t needed = 0;
	while (src < end) {
		unsigned char c = (unsigned char) *src++;
		if ((c == '<') || (c == '>')) {
			needed += 4;
		} else if ((c == '&') || (c == '\'')) {
			needed += 5;
		} else if (c == '"') {
			needed += 6;
		} else {
			needed++;
		}
	}

	if (!buf.allocate(needed)) {
		return -1;
	}

	char* dst = buf.data() + buf.count();

	// Encode.
	while (string < end) {
		unsigned char c = (unsigned char) *string++;
		if (c == '<') {
			*dst++ = '&';
			*dst++ = 'l';
			*dst++ = 't';
			*dst++ = ';';
		} else if (c == '>') {
			*dst++ = '&';
			*dst++ = 'g';
			*dst++ = 't';
			*dst++ = ';';
		} else if (c == '&') {
			*dst++ = '&';
			*dst++ = 'a';
			*dst++ = 'm';
			*dst++ = 'p';
			*dst++ = ';';
		} else if (c == '"') {
			*dst++ = '&';
			*dst++ = 'q';
			*dst++ = 'u';
			*dst++ = 'o';
			*dst++ = 't';
			*dst++ = ';';
		} else if (c == '\'') {
			*dst++ = '&';
			*dst++ = '#';
			*dst++ = '3';
			*dst++ = '9';
			*dst++ = ';';
		} else {
			*dst++ = c;
		}
	}

	buf.increment_count(needed);

	return needed;
}
开发者ID:guidoreina,项目名称:gweb-plusplus,代码行数:67,代码来源:html_encoder.cpp


注:本文中的buffer::count方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。