Poco 字符串处理(一)
这不是一个严谨的教材,同样,由于Poco的简洁好用,它也不需要一个严谨的教材。这是根据我当时使用的需要整理出的材料,当时我是先使用正则表达式,所以就从字符串开始吧。字符串部分,主要是依据Poco网站提供的一个PDF格式教材幻灯片来的(翻译 + 少量分析)。
头文件
#include “Poco/String.h”
概述
所有Poco的函数,都是适用于std::string和std::wstring两种类型字符串的。
都放在名字空间Poco里面,也就是说,如果你要使用Poco提供的函数toUpper,要么using namespace Poco,要么采用Poco::toUpper的形式;
都有两种形式:对被处理的字符串不做修改,而是把结果放在另外一个字符串里面;或者直接把修改以后的结果放在传入的字符串里面,其中的后者叫做InPlace模式,对应的标记是在函数名字后面有一个InPlace的后缀。比如函数S toUpper(const S&),它还有个对应的函数是S& toUpperInPlace(S&),区别在于对于传入参数toUpper是不修改的,返回值是另外一个字符串;而函数toUpperInplace则会修改传入参数,返回值还是传入参数本身。
函数
std::[w]string trimLeft(const std::[w]string& str) 返回str的一个删除了开头所有空白字符的拷贝。
std::[w]string& trimLeftInPlace(std::[w]string& str) 删除开头所有空白字符以后返回str本身。
std::[w]string trimRight(const std::[w]string& str) 类似trimLeft,删除结尾处空白字符
std::[w]string trimRightInPlace(std::[w]string& str) 类似trimLeftInPlace,删除结尾处空白字符
std::[w]string trim(const std::[w]string& str) 类似trimLeft,删除头尾空白字符
std::[w]string trimInPlace(std::[w]string& str) 类似trimLeftInPlace,删除头尾空白字符
这里的空白字符,包括空格、制表符、回车、换行等字符,0x09 - 0xD和0x20都认为是空白字符。它的没有一个一个的比较,而是对每一个字符(总共128个,因为std::string/wstring的性质都决定在这128个字符)赋了一个属性值,然后用与操作来获取这个属性,这样就不需要对空白字符逐个判断,只要一次判断就可以了。具体可以参考函数Ascii::properties。
待续»>
[原文在百度空间已经关闭]
标签集合/Tag clouds
C++
Symbain
轻松汇编
算法
论文学习
资治通鉴
Delphi
编程之美
Poco
MFC
Linux
IFC
知乎
汇编
数据分析
交叉编译
poco
j2me
android
XML
Java
DTD
飞信
零宽断言
诺基亚
联系人
编程
真值表
池西木
正则表达式
多线程
命令行
优化
stream
configure
cmake
VIM
UiAutomator
TDD
Symbian
Sqlite
SourceInsight
Python
MPAndroidChart
Kotlin
Flutter
Dokka
Chatgpt