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


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

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


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

示例1: str_common

 size_t str_common(const basic_string<C>& s1, const basic_string<C>& s2, size_t start = 0) noexcept {
     if (start >= s1.size() || start >= s2.size())
         return 0;
     auto p = s1.data() + start;
     for (auto q = s2.data() + start, endp = p + std::min(s1.size(), s2.size()); p != endp && *p == *q; ++p, ++q) {}
     return p - s1.data() - start;
 }
开发者ID:kusl,项目名称:unicorn-lib,代码行数:7,代码来源:string-algorithm.hpp

示例2: min

ostream&  __STL_CALL operator<<(ostream& __os,
                                const basic_string<_CharT,_Traits,_Alloc>& __s)
{
    __STL_USING_VENDOR_STD
    streambuf* __buf = __os.rdbuf();
    if (__buf) {
        size_t __n = __s.size();
        size_t __pad_len = 0;
        const bool __left = (__os.flags() & ios::left) !=0;
        const size_t __w = __os.width();

        if (__w > 0) {
            __n = min(__w, __n);
            __pad_len = __w - __n;
        }

        if (!__left)
            __sgi_string_fill(__os, __buf, __pad_len);

        const size_t __nwritten = __buf->sputn(__s.data(), __n);

        if (__left)
            __sgi_string_fill(__os, __buf, __pad_len);

        if (__nwritten != __n)
            __os.clear(__os.rdstate() | ios::failbit);

        __os.width(0);
    }
    else
        __os.clear(__os.rdstate() | ios::badbit);

    return __os;
}
开发者ID:rickyharis39,项目名称:nolf2,代码行数:34,代码来源:_string_io.c

示例3: 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

示例4: str_expect

 bool str_expect(UtfIterator<C>& i, const UtfIterator<C>& end, const basic_string<C>& prefix) {
     size_t psize = prefix.size();
     if (psize == 0 || end.offset() - i.offset() < psize
             || memcmp(i.source().data() + i.offset(), prefix.data(), psize) != 0)
         return false;
     i = utf_iterator(i.source(), i.offset() + psize);
     return true;
 }
开发者ID:kusl,项目名称:unicorn-lib,代码行数:8,代码来源:string-algorithm.hpp

示例5: 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

示例6: streamsize

basic_ostream<_CharT, _Traits>& __STL_CALL
operator<<(basic_ostream<_CharT, _Traits>& __os,
           const basic_string<_CharT,_Traits,_Alloc>& __s)
{

    __STL_USING_VENDOR_STD
    typedef basic_ostream<_CharT, _Traits> __ostream;
    typename __ostream::sentry __sentry(__os);
    bool __ok = false;

    if (__sentry) {
        __ok = true;
        size_t __n = __s.size();
        size_t __pad_len = 0;
        const bool __left = (__os.flags() & __ostream::left) != 0;
        const size_t __w = __os.width(0);
        basic_streambuf<_CharT, _Traits>* __buf = __os.rdbuf();

        if (__w > 0 && __n < __w) {
            __pad_len = __w - __n;
        }

        if (!__left)
            __ok = __sgi_string_fill(__os, __buf, __pad_len);

        __ok = __ok && (__buf->sputn(__s.data(), streamsize(__n)) == streamsize(__n));

        if (__left)
            __ok = __ok && __sgi_string_fill(__os, __buf, __pad_len);
    }

    if (!__ok)
        __os.setstate(__ostream::failbit);

    return __os;
}
开发者ID:rickyharis39,项目名称:nolf2,代码行数:36,代码来源:_string_io.c

示例7: strncmp

bool operator < (const basic_string<CharType, BaseType>& left, const basic_string<CharType, BaseType>& right)
{
	return strncmp(left.data(), right.data(), left.size() < right.size() ? left.size() : right.size()) < 0;
}
开发者ID:glyredsun,项目名称:gtl,代码行数:4,代码来源:string.hpp

示例8: str_ends_with

 bool str_ends_with(const basic_string<C>& str, const C* suffix) noexcept {
     if (! suffix)
         return true;
     auto count = cstr_size(suffix);
     return str.size() >= count && memcmp(str.data() + str.size() - count, suffix, sizeof(C) * count) == 0;
 }
开发者ID:kusl,项目名称:unicorn-lib,代码行数:6,代码来源:string-property.hpp

示例9: str_starts_with

 bool str_starts_with(const basic_string<C>& str, const C* prefix) noexcept {
     if (! prefix)
         return true;
     auto count = cstr_size(prefix);
     return str.size() >= count && memcmp(str.data(), prefix, sizeof(C) * count) == 0;
 }
开发者ID:kusl,项目名称:unicorn-lib,代码行数:6,代码来源:string-property.hpp


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