• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ string::CPtr类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1:

TEST(GTestXmlDom, TestElement) {
    Document::CPtr doc = Document::parse(sample);
    ASSERT_TRUE(!doc->asAttr());
    ASSERT_TRUE(!doc->asElement());
    ASSERT_TRUE(!!doc->asDocument());

    Node::CPtr node = doc->firstChild();
    ASSERT_TRUE(!node->asAttr());
    ASSERT_TRUE(!!node->asElement());
    ASSERT_TRUE(!node->asDocument());

    Element::CPtr element = node->asElement();
    String::CPtr tag = element->tagName();
    String::CPtr attrVal1 = element->getAttribute(String::create("name"));
    String::CPtr attrVal2 = element->getAttribute(String::create("foo"));
    String::CPtr attrVal3 = element->getAttribute(String::null());
    ASSERT_TRUE(tag->equals(String::create("team")));
    ASSERT_TRUE(attrVal1->equals(String::create("foo")));
    ASSERT_TRUE(attrVal2->equals(String::create()));
    ASSERT_TRUE(!attrVal3);
    ASSERT_TRUE(element->hasAttribute(String::create("name")));
    ASSERT_FALSE(element->hasAttribute(String::create("foo")));
    ASSERT_FALSE(element->hasAttribute(String::null()));

    Attr::CPtr attr1 = element->getAttributeNode(String::create("name"));
    Attr::CPtr attr2 = element->getAttributeNode(String::create("foo"));
    Attr::CPtr attr3 = element->getAttributeNode(String::null());
    ASSERT_TRUE(!!attr1);
    ASSERT_TRUE(!attr2);
    ASSERT_TRUE(!attr3);
}
开发者ID:bygreencn,项目名称:libj,代码行数:31,代码来源:gtest_xml_dom.cpp


示例2: resolve

String::CPtr resolve(JsArray::CPtr paths) {
    const Size kMax = 8192;
    char dir[kMax];
    char* r = getcwd(dir, kMax);
    if (!r) return String::null();

    if (!paths) return String::create(dir);

    StringBuilder::Ptr resolved = StringBuilder::create();
    resolved->appendStr(dir);
    Size len = paths->length();
    for (Size i = 0; i < len; i++) {
        String::CPtr path = paths->getCPtr<String>(i);
        if (path) {
            if (isSep(path->charAt(0))) {
                resolved = StringBuilder::create();
#ifdef LIBJ_PF_WINDOWS
                // append the drive letter
                resolved->appendChar(dir[0]);
                resolved->appendChar(dir[1]);
            } else if (isAlpha(path->charAt(0)) && path->charAt(1) == ':') {
                resolved = StringBuilder::create();
#endif
            } else if (!path->isEmpty()) {
                resolved->appendChar(SEP);
            }
            resolved->appendStr(path);
        }
    }
    return trimSeps(normalize(resolved->toString()));
}
开发者ID:LittoCats,项目名称:libnode,代码行数:31,代码来源:path.cpp


示例3: percentDecode

String::CPtr percentDecode(String::CPtr str, String::Encoding enc) {
    if (!str || str->isEmpty())
        return String::create();

    Size len = str->length() + 1;
    char* decoded = new char[len];
    Size size = percentDecode(decoded, len, str->toStdString().c_str());
    String::CPtr res;
    switch (enc) {
    case String::UTF8:
        res = String::create(decoded, enc, size);
        break;
    case String::UTF16:
    case String::UTF16BE:
    case String::UTF16LE:
        res = String::create(decoded, enc, size >> 1);
        break;
    case String::UTF32:
    case String::UTF32BE:
    case String::UTF32LE:
        res = String::create(decoded, enc, size >> 2);
        break;
    default:
        assert(false);
        res = String::null();
    }
    delete[] decoded;
    return res;
}
开发者ID:LittoCats,项目名称:libnode,代码行数:29,代码来源:util.cpp


示例4: log

Boolean log(const Value& val) {
    String::CPtr s = String::valueOf(val);
    if (!s)
        return false;
    std::cout << s->toStdString() << std::endl;
    return true;
}
开发者ID:KotaHanda,项目名称:libj,代码行数:7,代码来源:console.cpp


示例5: indexOfSep

static inline Size indexOfSep(String::CPtr str, Size from) {
    assert(str);
    Size len = str->length();
    for (Size i = from; i < len; i++) {
        if (isSep(str->charAt(i))) return i;
    }
    return NO_POS;
}
开发者ID:LittoCats,项目名称:libnode,代码行数:8,代码来源:path.cpp


示例6:

TEST(GTestJsClosure, TestClosure2) {
    String::CPtr abc = String::create("abc");
    String::CPtr xyz = String::create("xyz");

    JsClosure::Ptr concat = JsClosure::create(
        [abc, xyz] (JsArray::Ptr args) -> Value {
        return abc->concat(xyz);
    });

    ASSERT_TRUE(concat->call().equals(String::create("abcxyz")));
}
开发者ID:louisyoo,项目名称:libj,代码行数:11,代码来源:gtest_js_closure.cpp


示例7: error

Boolean error(const Value& val) {
    if (val.isUndefined() || !isPrintable(LEVEL_ERROR))
        return false;

    String::CPtr s = toString(val);
    if (s) {
        error(s->toStdString().c_str());
        return true;
    } else {
        return false;
    }
}
开发者ID:bygreencn,项目名称:libj,代码行数:12,代码来源:console.cpp


示例8: warn

Boolean warn(const Value& val) {
    if (val.isUndefined() || !isPrintable(LEVEL_WARNING))
        return false;

    String::CPtr s = toString(val);
    if (s) {
        warn(s->toStdString().c_str());
        return true;
    } else {
        return false;
    }
}
开发者ID:bygreencn,项目名称:libj,代码行数:12,代码来源:console.cpp


示例9: log

Boolean log(const Value& val) {
    if (val.isUndefined() || !isPrintable(LEVEL_NORMAL))
        return false;

    String::CPtr s = toString(val);
    if (s) {
        log(s->toStdString().c_str());
        return true;
    } else {
        return false;
    }
}
开发者ID:bygreencn,项目名称:libj,代码行数:12,代码来源:console.cpp


示例10: extname

String::CPtr extname(String::CPtr path) {
    if (!path) return String::create();

    String::CPtr base = basename(path);
    if (base->charAt(0) == '.') return String::create();

    Size lastIndex = base->lastIndexOf('.');
    if (lastIndex == NO_POS) {
        return String::create();
    } else {
        return base->substring(lastIndex);
    }
}
开发者ID:LittoCats,项目名称:libnode,代码行数:13,代码来源:path.cpp


示例11:

TEST(GTestValue, TestTo10) {
    Value v = String::create("abc");
    String::CPtr s;
    ASSERT_TRUE(to<String::CPtr>(v, &s));
    ASSERT_TRUE(s->equals(String::create("abc")));

    Immutable::CPtr i1;
    ASSERT_FALSE(to<Immutable::CPtr>(v, &i1));

    Immutable::CPtr i2 = String::create("123");
    v = i2;
    Immutable::CPtr i3;
    ASSERT_TRUE(to<Immutable::CPtr>(v, &i3));
    ASSERT_TRUE(i3->equals(String::create("123")));
}
开发者ID:kokorodo,项目名称:libj,代码行数:15,代码来源:gtest_value.cpp


示例12:

TEST(GTestStringBuffer, TestToStdString) {
    const char u[] = {
        0xe3, 0x81, 0x82,
        0xe3, 0x81, 0x84,
        0xe3, 0x81, 0x86,
        0
    };

    String::CPtr s = String::create(u, String::UTF8);
    StringBuffer::Ptr sb = StringBuffer::create(s);

    ASSERT_EQ(s->toStdString(String::UTF8),  sb->toStdString());
    ASSERT_EQ(s->toStdString(String::UTF16), sb->toStdString(String::UTF16));
    ASSERT_EQ(s->toStdString(String::UTF32), sb->toStdString(String::UTF32));
}
开发者ID:louisyoo,项目名称:libj,代码行数:15,代码来源:gtest_string_buffer.cpp


示例13:

TEST(GTestJsRegExp, TestExec) {
    JsRegExp::Ptr re = JsRegExp::create(String::create("a+(b*)(c)"));

    JsArray::Ptr a = re->exec(String::create("xaacz"));
    ASSERT_EQ(3, a->length());
    ASSERT_TRUE(toCPtr<String>(a->get(0))->equals(String::create("aac")));
    ASSERT_TRUE(a->get(1).isUndefined());
    ASSERT_TRUE(toCPtr<String>(a->get(2))->equals(String::create("c")));
    Int index = -1;
    to<Int>(a->getProperty(String::create("index")), &index);
    ASSERT_EQ(1, index);
    String::CPtr input =
        toCPtr<String>(a->getProperty(String::create("input")));
    ASSERT_TRUE(input->equals(String::create("xaacz")));

    ASSERT_FALSE(re->exec(String::create("bc")));
}
开发者ID:nori0428,项目名称:libj,代码行数:17,代码来源:gtest_js_regexp.cpp


示例14: lastIndexOfSep

static inline Size lastIndexOfSep(String::CPtr str, Size from = NO_POS) {
    assert(str);
    Size len = str->length();
    if (!len) return NO_POS;

    if (from >= len) from = len - 1;

    Size i = from;
    while (1) {
        if (isSep(str->charAt(i))) return i;
        if (i) {
            i--;
        } else {
            break;
        }
    }
    return NO_POS;
}
开发者ID:LittoCats,项目名称:libnode,代码行数:18,代码来源:path.cpp


示例15: trimSeps

static inline String::CPtr trimSeps(String::CPtr str) {
    assert(str);
    Size len = str->length();
    if (!len) return str;

    Size i = len - 1;
    while (1) {
        if (!isSep(str->charAt(i))) {
            return str->substring(0, i + 1);
        }
        if (i) {
            i--;
        } else {
            break;
        }
    }
    return str->substring(0, 1);
}
开发者ID:LittoCats,项目名称:libnode,代码行数:18,代码来源:path.cpp


示例16:

TEST(GTestStringBuffer, TestAppendManyTimes) {
    const char a[] = "abcde";
    const char u[] = {
        0xe7, 0x8c, 0xab, 0xe3, 0x81, 0xa8, 0xe6, 0x9a,
        0xae, 0xe3, 0x82, 0x89, 0xe3, 0x81, 0x97, 0xe3,
        0x81, 0x9f, 0xe3, 0x81, 0x84,   // 猫と暮らしたい
        0
    };

    String::CPtr s1 = String::create(a);
    String::CPtr s2 = String::create(u, String::UTF8);
    String::CPtr exp = String::create("");
    StringBuffer::Ptr sb = StringBuffer::create();
    for (int i = 0; i < 100; i++) {
        sb->append(s1);
        sb->append(s2);
        exp = exp->concat(s1)->concat(s2);
    }
    ASSERT_TRUE(sb->toString()->equals(exp));
}
开发者ID:kokorodo,项目名称:libj,代码行数:20,代码来源:gtest_string_buffer.cpp


示例17: percentEncode

String::CPtr percentEncode(String::CPtr str, String::Encoding enc) {
    static const Boolean isBigEndian = endian() == BIG;

    if (!str || str->length() == 0)
        return String::create();

    Buffer::Ptr buf;
    switch (enc) {
    case String::UTF8:
        buf = Buffer::create(str, Buffer::UTF8);
        break;
    case String::UTF16:
        if (isBigEndian) {
            buf = Buffer::create(str, Buffer::UTF16BE);
        } else {
            buf = Buffer::create(str, Buffer::UTF16LE);
        }
        break;
    case String::UTF16BE:
        buf = Buffer::create(str, Buffer::UTF16BE);
        break;
    case String::UTF16LE:
        buf = Buffer::create(str, Buffer::UTF16LE);
        break;
    case String::UTF32:
        if (isBigEndian) {
            buf = Buffer::create(str, Buffer::UTF32BE);
        } else {
            buf = Buffer::create(str, Buffer::UTF32LE);
        }
        break;
    case String::UTF32BE:
        buf = Buffer::create(str, Buffer::UTF32BE);
        break;
    case String::UTF32LE:
        buf = Buffer::create(str, Buffer::UTF32LE);
        break;
    default:
        assert(false);
        buf = Buffer::null();
    }
    Size sourceLen = buf->length();
    const char* source = static_cast<const char*>(buf->data());
    Size encodedLen = sourceLen * 3 + 1;
    char* encoded = new char[encodedLen];
    percentEncode(encoded, encodedLen, source, sourceLen);
    String::CPtr res = String::create(encoded);
    delete[] encoded;
    return res;
}
开发者ID:LittoCats,项目名称:libnode,代码行数:50,代码来源:util.cpp


示例18: create

DiscoveryService::Ptr DiscoveryService::create(
    String::CPtr multicastAddr,
    Int port,
    UInt timeout) {
    LIBJ_STATIC_CONST_STRING_DEF(str239, "239.");

    if (net::isIPv4(multicastAddr) &&
            multicastAddr->startsWith(str239) &&
            port > 0) {
        return DiscoveryService::Ptr(
                   new jsdp::detail::DiscoveryService(multicastAddr, port, timeout));
    } else {
        return DiscoveryService::null();
    }
}
开发者ID:mrwill84,项目名称:libnode,代码行数:15,代码来源:jsdp.cpp


示例19: basename

String::CPtr basename(String::CPtr path) {
    LIBJ_STATIC_SYMBOL_DEF(symNull, "null");

    if (path) {
        path = trimSeps(path);
    } else {
        return symNull;
    }

    Size lastIndex = lastIndexOfSep(path);
    if (lastIndex == NO_POS) {
        return path;
    } else {
        return path->substring(lastIndex + 1);
    }
}
开发者ID:LittoCats,项目名称:libnode,代码行数:16,代码来源:path.cpp


示例20: dirname

String::CPtr dirname(String::CPtr path) {
    LIBJ_STATIC_SYMBOL_DEF(symCurrent, ".");

    if (!path) return symCurrent;

    path = trimSeps(path);
    String::CPtr base = basename(path);
    Size baseLen = base->length();
    Size pathLen = path->length();
    if (baseLen == pathLen) {
        return symCurrent;
    } else {
        Size sepPos = pathLen - baseLen - 1;
        assert(isSep(path->charAt(sepPos)));
        if (sepPos) {
            return path->substring(0, sepPos);
        } else {
            return path->substring(0, 1);
        }
    }
}
开发者ID:LittoCats,项目名称:libnode,代码行数:21,代码来源:path.cpp



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ string::CharPointerType类代码示例发布时间:2022-05-31
下一篇:
C++ streamdatalist::const_iterator类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap