String和字符处理

Hello world,hello blog!

Posted by 吴柚 on March 12, 2019

STL string

#include

using namespace std;

// 构造函数

string s;

string s(str); // 从str中复制

string s(str, index); // 部分复制[index,end]

string s(str, index, n);// 部分复制[index, index + n]

string s(c_str); // 从C字符串复制

string s(c_str, n); // 从C字符串部分复制[0,n]

string s(10, ‘a’); // 10个’a’

// 长度

s.empty(); // 判断是否为空

s.size();

s.capacity();

// 插入删除

s.push_back(‘a’);

s.insert();

s.erase(start, end);

s.clear();

// 替换字符

s.replace();

s.swap();

// 迭代器

s.begin();

s.end();

s.rend();

s.rbegin();

// 与C标准字符串转换 s.c_str(); s.data();

// 查找 s.find(‘a’); // 返回字符所在位置

// 子串 s.substr(i, j); // [i, j]范围子串

// 比较 s.compare(str); // 相等0,大于1,小于-1

字符处理

#include

isalnum(c); // 如果c是字母或数字,返回 true

isalpha(c); // 如果c是字母,返回true

iscntrl(c); // c是控制符,返回true

isdigit(c); // 如果c是数字,返回true

isgraph(c); // 如果c不是空格,则为true

islower(c); // 如果c是小写字母,则为true

isupper(c); // 如果c是大写字符,则为true

isprint(c); // 如果c是可打印的字符,则为true

ispunct(c); // 如果c是标点符号,则为true

isspace(c); // 如果c是空白字符,则为true

isxdigit(c); // 如果c是十六进制数,则为true

tolower(c); // 如果c是大写字符,则返回其小写字母,否则直接返回c

toupper(c); // 跟tolower相反

IPv4题目中对IP地址的分段中利用find()和substr()函数可以实现通过关键字符’.’对IP地址进行分段