本文整理汇总了C++中string::CPtr::charAt方法的典型用法代码示例。如果您正苦于以下问题:C++ CPtr::charAt方法的具体用法?C++ CPtr::charAt怎么用?C++ CPtr::charAt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类string::CPtr
的用法示例。
在下文中一共展示了CPtr::charAt方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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()));
}
示例2: 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;
}
示例3: 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);
}
}
示例4: 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);
}
示例5: 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;
}
示例6: 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);
}
}
}