这不是一个严谨的教材,同样,由于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。

待续»>

 

 

[原文在百度空间已经关闭]