⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xstring.hpp

📁 经典的string 函数库学习资料
💻 HPP
📖 第 1 页 / 共 2 页
字号:
/** * @file xstring.hpp * @brief 字符串的包装,函数的声明 * @author 泥偶 * @since  2003-08-29 * @date   2004-08-28 */#ifndef XSTRING_HPP#define XSTRING_HPPextern "C"{    #include <sys/types.h>    #include <regex.h>}#include <stdexcept>#include <string>#include <vector>/** * @namespace x * @brief eXtreme(极限) eXpress(急速)eXtend(扩展) */namespace x{    /// @brief 处理引号的方式    /// @see xstring::htmlspecialchars()    enum QUOTE_STYLE    {        ENT_COMPAT,     ///< 只转换双引号,不转换单引号        ENT_QUOTES,     ///< 转换双引号和单引号        ENT_NOQUOTES    ///< 不转换双引号和单引号    };    /// @brief 填补字符方式    /// @see xstring::str_pad()    enum PAD_TYPE    {        PAD_RIGHT,      ///< 右侧填补字符        PAD_LEFT,       ///< 左侧填补字符        PAD_BOTH        ///< 两侧填补字符    };    /**     * @class xstring xstring.hpp "xstring.hpp"     * @brief 字符串的包装     * @version 1.1.0     */    class xstring : public std::string    {    public:    // 构造函数        /// @brief 默认构造函数,生成一个空字符串        xstring() : std::string() { }        /// @brief 拷贝构造函数,生成str的一个复制品        xstring(const std::string& str) : std::string(str) { }        /// @brief 将字符串str内“始于位置pos且长度最多n”的部分,当做字符串的初值        xstring(            const std::string&  str,            size_type           pos,            size_type           n   = npos        ) : std::string(str, pos, n) { }        /// @brief 将C-string s当做字符串的初值        xstring(const char* s) : std::string(s) { }        /// @brief 将C-string s的前n个字符作为字符串的初值        xstring(const char* s, size_type n) : std::string(s, n) { }        /// @brief 生成一个字符串,包含n个c字符        xstring(size_type n, char c) : std::string(n, c) { }        /// @brief 以区间[begin; end)内的字符作为字符串的初值        template<typename InputIterator>        xstring(InputIterator begin, InputIterator end) :            std::string(begin, end) { }        /// @brief 拷贝构造函数,生成str的一个复制品        xstring(const xstring& str) : std::string(str) { }        /// @brief 将字符串str内“始于位置pos且长度最多n”的部分,当做字符串的初值        xstring(            const xstring&  str,            size_type       pos,            size_type       n = npos        ) : std::string(str, pos, n) { }        /// @brief 从其它类型创建xstring的拷贝构造函数        template<typename T>        explicit xstring(const T& v);        /// @brief 构造函数,char重载版本        explicit xstring(char v) : std::string(1, v) { }        /// @brief 构造函数,signed char重载版本        explicit xstring(signed char v) : std::string(1, v) { }        /// @brief 构造函数,unsigned char重载版本        explicit xstring(unsigned char v) : std::string(1, v) { }        /// @brief 将xstring型数据转换成其它类型        template<typename T>        T to(void) const;        /// @brief 返回字符串        inline xstring toString(void);        /// @brief 返回字符串        inline const xstring& toString(void) const;    // "ctype.h"上面的函数        /// @brief 返回转换成小写字母的字符串        xstring toLowerCase(void) const;        /// @brief 返回转换成大写字母的字符串        xstring toUpperCase(void) const;        /// @brief 判断字符串是否只包括数字或字母        bool isAlnum(void) const;        /// @brief 判断字符串是否只包括字母        bool isAlpha(void) const;        /// @brief 判断字符串是否只包括ASCII字符        bool isAscii(void) const;        /// @brief 判断字符串是否只包括空白字符        bool isBlank(void) const;        /// @brief 判断字符串是否只包括控制字符        bool isCntrl(void) const;        /// @brief 判断字符串是否只包括数字        bool isDigit(void) const;        /// @brief 判断字符串是否只包括可打印字符,不包括空格        bool isGraph(void) const;        /// @brief 判断字符串是否只包括小写字母        bool isLower(void) const;        /// @brief 判断字符串是否只包括可打印字符,包括空格        bool isPrint(void) const;        /// @brief 判断字符串是否只包括除了空格和数字、字母之外的可打印字符        bool isPunct(void) const;        /// @brief 判断字符串是否只包括空白字符        bool isSpace(void) const;        /// @brief 判断字符串是否只包括大写字母        bool isUpper(void) const;        /// @brief 判断字符串是否只包括16进制数字        bool isXdigit(void) const;        /// @brief 判断字符串是否是电话号码        bool isPhone(void) const;        /// @brief 判断字符串是否是电子邮件        // ^[_\.0-9a-zA-Z\-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,3}$        bool isEmail(void) const;        /// @brief 判断字符串是否是主机名        bool isHostName(void) const;        /// @brief 判断字符串是否是IP地址        bool isIpAddress(void) const;    // JavaScript手册上面的函数      // HTML方法        /// @brief 给字符串添加@<a name=@>标签,返回字符串的一个副本        xstring anchor(const xstring& name) const;        /// @brief 给字符串添加@<big@>标签,返回字符串的一个副本        xstring big(void) const;        /// @brief 给字符串添加@<blink@>标签,返回字符串的一个副本        /// @deprecated 不推荐使用这个函数,@<blink@>标签在HTML 4中被废除        xstring blink(void) const;        /// @brief 给字符串添加@<b@>标签,返回字符串的一个副本        xstring bold(void) const;        /// @brief 给字符串添加@<tt@>标签,返回字符串的一个副本        xstring fixed(void) const;        /// @brief 给字符串添加@<font color=@>标签,返回字符串的一个副本        /// @deprecated 不推荐使用这个函数,@<font@>标签在HTML 4中被废除        xstring fontcolor(const xstring& color) const;        /// @brief 给字符串添加@<font size=@>标签,返回字符串的一个副本        /// @deprecated 不推荐使用这个函数,@<font@>标签在HTML 4中被废除        xstring fontsize(unsigned int size) const;        /// @brief 给字符串添加@<i@>标签,返回字符串的一个副本        xstring italic(void) const;        /// @brief 给字符串添加@<a href=@>标签,返回字符串的一个副本        xstring link(const xstring& url) const;        /// @brief 给字符串添加@<small@>标签,返回字符串的一个副本        xstring small(void) const;        /// @brief 给字符串添加@<strike@>标签,返回字符串的一个副本        xstring strike(void) const;        /// @brief 给字符串添加@<sub@>标签,返回字符串的一个副本        xstring sub(void) const;        /// @brief 给字符串添加@<sup@>标签,返回字符串的一个副本        xstring sup(void) const;      // 泥偶增加的        /// @brief 给字符串添加@<h1@>...@<h6@>标签,返回字符串的一个副本        xstring heading(unsigned int level) const;        /// @brief 给字符串添加@<u@>标签,返回字符串的一个副本        xstring underline(void) const;        /// @brief 给字符串添加@<span style=@>标签,返回字符串的一个副本        xstring span(const xstring& style) const;      // 忽略大小写字符串比较        /// @brief 把*this拿来和str进行比较,忽略大小写

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -