您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ ConvertUTF32ToUTF8函数代码示例

51自学网 2021-06-01 20:13:39
  C++
这篇教程C++ ConvertUTF32ToUTF8函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中ConvertUTF32ToUTF8函数的典型用法代码示例。如果您正苦于以下问题:C++ ConvertUTF32ToUTF8函数的具体用法?C++ ConvertUTF32ToUTF8怎么用?C++ ConvertUTF32ToUTF8使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

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

示例1: strchr

const char* TiXmlBase::GetEntity( const char* p, char* value, int* length, TiXmlEncoding encoding ){	// Presume an entity, and pull it out.    TIXML_STRING ent;	int i;	*length = 0;	if ( *(p+1) && *(p+1) == '#' && *(p+2) )	{		unsigned long ucs = 0;		ptrdiff_t delta;		unsigned mult = 1;		if ( *(p+2) == 'x' )		{			// Hexadecimal.			if ( !*(p+3) ) return nullptr;			const char* q = p+3;			q = strchr( q, ';' );			if ( !q || !*q ) return nullptr;			delta = q-p;			--q;			while ( *q != 'x' )			{				if ( *q >= '0' && *q <= '9' )					ucs += mult * (*q - '0');				else if ( *q >= 'a' && *q <= 'f' )					ucs += mult * (*q - 'a' + 10);				else if ( *q >= 'A' && *q <= 'F' )					ucs += mult * (*q - 'A' + 10 );				else 					return nullptr;				mult *= 16;				--q;			}		}		else		{			// Decimal.			if ( !*(p+2) ) return nullptr;			const char* q = p+2;			q = strchr( q, ';' );			if ( !q || !*q ) return nullptr;			delta = q-p;			--q;			while ( *q != '#' )			{				if ( *q >= '0' && *q <= '9' )					ucs += mult * (*q - '0');				else 					return nullptr;				mult *= 10;				--q;			}		}		if ( encoding == TIXML_ENCODING_UTF8 )		{			// convert the UCS to UTF-8			ConvertUTF32ToUTF8( ucs, value, length );		}		else		{			*value = static_cast<char>(ucs);			*length = 1;		}		return p + delta + 1;	}	// Now try to match it.	for( i=0; i<NUM_ENTITY; ++i )	{		if ( strncmp( entity[i].str, p, entity[i].strLength ) == 0 )		{			assert( strlen( entity[i].str ) == entity[i].strLength );			*value = entity[i].chr;			*length = 1;			return ( p + entity[i].strLength );		}	}	// So it wasn't an entity, its unrecognized, or something like that.	*value = *p;	// Don't put back the last one, since we return it!	//*length = 1;	// Leave unrecognized entities - this doesn't really work.					// Just writes strange XML.	return p+1;}
开发者ID:drwbns,项目名称:tpnew---latest-ogre_v2-1,代码行数:94,


示例2: strchr

const char* XMLUtil::GetCharacterRef( const char* p, char* value, int* length ){    // Presume an entity, and pull it out.    *length = 0;    if ( *(p+1) == '#' && *(p+2) ) {        unsigned long ucs = 0;        ptrdiff_t delta = 0;        unsigned mult = 1;        if ( *(p+2) == 'x' ) {            // Hexadecimal.            if ( !*(p+3) ) {                return 0;            }            const char* q = p+3;            q = strchr( q, ';' );            if ( !q || !*q ) {                return 0;            }            delta = q-p;            --q;            while ( *q != 'x' ) {                if ( *q >= '0' && *q <= '9' ) {                    ucs += mult * (*q - '0');                }                else if ( *q >= 'a' && *q <= 'f' ) {                    ucs += mult * (*q - 'a' + 10);                }                else if ( *q >= 'A' && *q <= 'F' ) {                    ucs += mult * (*q - 'A' + 10 );                }                else {                    return 0;                }                mult *= 16;                --q;            }        }        else {            // Decimal.            if ( !*(p+2) ) {                return 0;            }            const char* q = p+2;            q = strchr( q, ';' );            if ( !q || !*q ) {                return 0;            }            delta = q-p;            --q;            while ( *q != '#' ) {                if ( *q >= '0' && *q <= '9' ) {                    ucs += mult * (*q - '0');                }                else {                    return 0;                }                mult *= 10;                --q;            }        }        // convert the UCS to UTF-8        ConvertUTF32ToUTF8( ucs, value, length );        return p + delta + 1;    }    return p+1;}
开发者ID:henriyl,项目名称:ZShadeSandboxOld,代码行数:76,


示例3: strchr

const char* TiXmlBase::GetEntity( const char* p, char* value, int* length ){	// Presume an entity, and pull it out.    TIXML_STRING ent;	int i;	*length = 0;	if ( *(p+1) && *(p+1) == '#' && *(p+2) )	{		unsigned long ucs = 0;		unsigned delta = 0;		unsigned mult = 1;		if ( *(p+2) == 'x' )		{			// Hexadecimal.			if ( !*(p+3) ) return 0;			const char* q = p+3;			q = strchr( q, ';' );			if ( !q || !*q ) return 0;			delta = q-p;			--q;			while ( *q != 'x' )			{				if ( *q >= '0' && *q <= '9' )					ucs += mult * (*q - '0');				else if ( *q >= 'a' && *q <= 'f' )					ucs += mult * (*q - 'a' + 10);				else if ( *q >= 'A' && *q <= 'F' )					ucs += mult * (*q - 'A' + 10 );				else 					return 0;				mult *= 16;				--q;			}		}		else		{			// Decimal.			if ( !*(p+2) ) return 0;			const char* q = p+2;			q = strchr( q, ';' );			if ( !q || !*q ) return 0;			delta = q-p;			--q;			while ( *q != '#' )			{				if ( *q >= '0' && *q <= '9' )					ucs += mult * (*q - '0');				else 					return 0;				mult *= 10;				--q;			}		}		// convert the UCS to UTF-8		ConvertUTF32ToUTF8( ucs, value, length );		return p + delta + 1;	}	// Now try to match it.	for( i=0; i<NUM_ENTITY; ++i )	{		if ( strncmp( entity[i].str, p, entity[i].strLength ) == 0 )		{			assert( strlen( entity[i].str ) == entity[i].strLength );			*value = entity[i].chr;			*length = 1;			return ( p + entity[i].strLength );		}	}	// So it wasn't an entity, its unrecognized, or something like that.	*value = *p;	// Don't put back the last one, since we return it!	return p+1;}
开发者ID:priyananda,项目名称:projects,代码行数:84,


示例4: uischr

const TIXML_CHAR* TiXmlBase::GetEntity( const TIXML_CHAR* p, TIXML_CHAR* value, int* length, TiXmlEncoding encoding ){	// Presume an entity, and pull it out.    TIXML_STRING ent;	int i;	*length = 0;	if ( *(p+1) && *(p+1) == _TIXML_L('#') && *(p+2) )	{		unsigned long ucs = 0;		ptrdiff_t delta = 0;		unsigned mult = 1;		if ( *(p+2) == _TIXML_L('x') )		{			// Hexadecimal.			if ( !*(p+3) ) return 0;			const TIXML_CHAR* q = p+3;			q = uischr( q, _TIXML_L(';') );			if ( !q || !*q ) return 0;			delta = q-p;			--q;			while ( *q != _TIXML_L('x') )			{				if ( *q >= _TIXML_L('0') && *q <= _TIXML_L('9') )					ucs += mult * (*q - _TIXML_L('0'));				else if ( *q >= _TIXML_L('a') && *q <= _TIXML_L('f') )					ucs += mult * (*q - _TIXML_L('a') + 10);				else if ( *q >= _TIXML_L('A') && *q <= _TIXML_L('F') )					ucs += mult * (*q - _TIXML_L('A') + 10 );				else 					return 0;				mult *= 16;				--q;			}		}		else		{			// Decimal.			if ( !*(p+2) ) return 0;			const TIXML_CHAR* q = p+2;			q = uischr( q, _TIXML_L(';') );			if ( !q || !*q ) return 0;			delta = q-p;			--q;			while ( *q != _TIXML_L('#') )			{				if ( *q >= _TIXML_L('0') && *q <= _TIXML_L('9') )					ucs += mult * (*q - _TIXML_L('0'));				else 					return 0;				mult *= 10;				--q;			}		}		if ( encoding == TIXML_ENCODING_UTF8 )		{			// convert the UCS to UTF-8			ConvertUTF32ToUTF8( ucs, value, length );		}		else		{			*value = (TIXML_CHAR)ucs;			*length = 1;		}		return p + delta + 1;	}	// Now try to match it.	for( i=0; i<NUM_ENTITY; ++i )	{		if ( uisncmp( entity[i].str, p, entity[i].uislength ) == 0 )		{			assert( uislen( entity[i].str ) == entity[i].uislength );			*value = entity[i].chr;			*length = 1;			return ( p + entity[i].uislength );		}	}	// So it wasn't an entity, its unrecognized, or something like that.	*value = *p;	// Don't put back the last one, since we return it!	//*length = 1;	// Leave unrecognized entities - this doesn't really work.					// Just writes strange XML.	return p+1;}
开发者ID:ThePirateOld,项目名称:four-mp,代码行数:94,



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


C++ ConvertUTF8ToWString函数代码示例
C++ ConvertToUnicode函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。