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


C++ basic_string::length方法代码示例

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


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

示例1: make_errno_system_error

	basic_string< TargetChar > convert( const basic_string< SourceChar > &sourceString,
			size_t ( *convertFunction )( TargetChar *dst, const SourceChar **src, size_t len, mbstate_t *state )) {

		constexpr auto LENGTH_ERROR = static_cast< size_t >( -1 );

		mbstate_t state = mbstate_t();

		// Find out how much space we need:

		const SourceChar *sourceStringData = sourceString.data();
		size_t expectedTargetStringLength = convertFunction( nullptr, &sourceStringData, sourceString.length(), &state );
		if ( expectedTargetStringLength == LENGTH_ERROR )
			throw make_errno_system_error();

		// Convert the string:

		basic_string< TargetChar > targetString( expectedTargetStringLength, TargetChar() );
		size_t actualTargetStringLength = convertFunction( &targetString[ 0 ], &sourceStringData, sourceString.length(), &state );
		if ( actualTargetStringLength == LENGTH_ERROR )
			throw make_errno_system_error();

		// Could all characters be converted?

		if ( expectedTargetStringLength != actualTargetStringLength )
			throw system_error( make_error_code( errc::illegal_byte_sequence ));

		return targetString;
	}
开发者ID:petermost,项目名称:CppAidKit,代码行数:28,代码来源:unicode.cpp

示例2: CTempXStr

 CTempXStr(const basic_string<_TChar>& str, size_t pos, size_t length)
     : m_Data(str.data()+pos), m_Length(length)
 {
     if (pos == x_npos()) {
         m_Data = str.data();
         m_Length = 0;
     } else {
         m_Data = str.data()+pos;
         if (length == x_npos()) {
             m_Length = str.length() - pos;
         } else {
             m_Length = length;
             if (m_Length + pos > str.length()) {
                 m_Length = str.length() - pos;
             }
         }
     }
 }
开发者ID:jackgopack4,项目名称:pico-blast,代码行数:18,代码来源:ncbi_xstr.hpp

示例3:

bool KeyValueString<T>::GetKeyValueFromPair(const basic_string<T> & keyValuePair, basic_string<T> & key, basic_string<T> & value) const
{
	size_t kvSeparatorPosition = keyValuePair.find(_keyValueSeparator);
	if (kvSeparatorPosition == basic_string<T>::npos)
		return false;

	key = keyValuePair.substr(0, kvSeparatorPosition);
	value = keyValuePair.substr(kvSeparatorPosition + 1, keyValuePair.length() - kvSeparatorPosition - 1);

	return true;
}
开发者ID:Petrik7,项目名称:Prototypes,代码行数:11,代码来源:KeyValueString.hpp

示例4: nthSubstrg

int nthSubstrg(int n, const basic_string<T>& s,
               const basic_string<T>& p,
               bool repeats = false) {
   string::size_type i = s.find(p);
   string::size_type adv = (repeats) ? 1 : p.length( );

   int j;
   for (j = 1; j < n && i != basic_string<T>::npos; ++j)
      i = s.find(p, i+adv);

   if (j == n)
     return(i);
   else
     return(-1);
}
开发者ID:jervisfm,项目名称:ExampleCode,代码行数:15,代码来源:4-18.cpp

示例5: compare

 static int compare(const basic_string<CharType> & str1, const basic_string<CharType> & str2){
     size_t min_length = (str1.length() < str2.length() ? str1.length() : str2.length());
     for(size_t i = 0; i < min_length; i++){
         if(str1[i] < str2[i]){
             return -1;
         }else if(str1[i] > str2[i]){
             return 1;
         }
     }
     
     // if all characters are compared
     if(str1.length() < str2.length()){
         return -1;
     }else if(str1.length() > str2.length()){
         return 1;
     }
     return 0;
 }
开发者ID:maraigue,项目名称:fundoshi.hpp,代码行数:18,代码来源:fundoshi.hpp

示例6: EOS

basic_string<T> KeyValueString<T>::Encode(const basic_string<T> & sourceData, const T separator)
{
	basic_string<T> result;
	result.reserve(sourceData.length() + 8);
	size_t i = 0;
	const T terminatingNull = EOS(T());
	while(terminatingNull != sourceData[i])
	{
		result += sourceData[i];
		if(sourceData[i] == separator)
			result += separator;
		++i;
	}
	result += separator;
	
	return result;
}
开发者ID:Petrik7,项目名称:Prototypes,代码行数:17,代码来源:KeyValueString.hpp

示例7: if

basic_string<T> KeyValueString<T>::Decode(const basic_string<T> & encodedPair, const T separator)
{
	basic_string<T> result;
	result.reserve(encodedPair.length());
	size_t i = 0;
	const T terminatingNull = EOS(T());
	while(terminatingNull != encodedPair[i])
	{
		if(separator != encodedPair[i])
			result += encodedPair[i];
		else if(separator == encodedPair[i + 1])
	    {
			result += separator;
			++i;
		}
		++i;
	}
	return result;
}
开发者ID:Petrik7,项目名称:Prototypes,代码行数:19,代码来源:KeyValueString.hpp

示例8: pad

void pad(basic_string <T> &s,
         typename basic_string<T>::size_type n, T c) {
    if (n > s.length())
        s.append(n - s.length(), c);
}
开发者ID:psychoss,项目名称:Everything,代码行数:5,代码来源:padding-a-string.cpp


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