您现在的位置:首页 > 教案模板 > 正文

boost string find_string find 函数_could not find boost

2019-09-22 01:02 网络整理 教案网

boost string find_string find 函数_could not find boost

boost::algorithm提供了很多字符串算法

包括: 大小写转换; 去除无效字符; 谓词; 查找; 删除/替换; 切割; 连接;

比较长,直接find吧。

我们用写例子的方式来了解boost::algorithm能够为我们做些什么。 注释是运行结果。

boost::algorithm学习

#include <boost/algorithm/string.hpp>

using namespace std;

using namespace boost;

一:大小写转换

1 to_upper() 将字符串转为大写

Example:

string str1(" hello world! ");

to_upper(str1); // str1 == " HELLO WORLD! "

2 to_upper_copy() 将字符串转为大写,并且赋值给另一个字符串

Example:

string str1(" hello world! ");

string str2;

例如:$str1=”a”,$str2=”a“,则print ($str1 cmp $str2) ==> 0。例如:$str1=”a”,$str2=”b”boost string find,则print($str1 cmp $str2)===> -1。        mypath.appendingpathcomponent("file.txt")        "hello, world".stringbyreplacingoccurrencesofstring("hello", withstring: "goodbye")        "hello, world".replacingoccurrences(of: "hello", with: "goodbye")        "hello, world".substringfromindex(7)        "hello, world".substring(from: 7)        "hello, world".capitalizedstring        "hello, world".capitalized。

3 to_lower() 将字符串转为小写

Example:参看to_upper()

4 to_lower_copy() 将字符串转为小写,并且赋值给另一个字符串

Example:参看to_upper_copy()

二:Trimming(整理,去掉首尾的空格字符)

1 trim_left() 将字符串开头的空格去掉

Example:

string str1(" hello world! ");

trim_left(str1); // str1 == "hello world! "

2 trim_left_if() 将字符串开头的符合我们提供的“谓词”的特定字符去掉

Example:

bool NotH(const char &ch)

{

if(ch == ' ' || ch == 'H' || ch == 'h')

return true;

else

return false;

}

....

string str1(" hello world! ");

string str1 = "hello world。$ echo "hello, world" | awk '{print sub(/ello/, "i")。[kodango@devops ~]$ echo "hello, world" | awk '{print sub(/ello/, "i")。

3 trim_left_copy() 将字符串开头的空格去掉,并且赋值给另一个字符串

Example:

string str1(" hello world! ");

string str2;

str2 = trim_left_copy(str1); // str2 == "hello world! "

4 trim_left_copy_if() 将字符串开头的符合我们提供的“谓词”的特定字符去掉,并且赋值给另一个字符串

Example:

string str1(" hello world! ");

string str2;

str2 = trim_left_copy_if(str1, NotH); // str2 == "ello world! "

// 将字符串结尾的空格去掉,示例请参看上面

5 trim_right_copy_if()

6 trim_right_if()

7 trim_right_copy()

8 trim_right()// 将字符串开头以及结尾的空格去掉,示例请参看上面

9 trim_copy_if()

10 trim_if()

11 trim_copy()

boost string find_string find 函数_could not find boost

12 trim()

三:谓词

1 starts_with() 判断一个字符串是否是另外一个字符串的开始串

Example:

string str1("hello world!");

string str2("hello");

bool result = starts_with(str1, str2); // result == true

2 istarts_with() 判断一个字符串是否是另外一个字符串的开始串(不区分大小写)

Example:

string str1("hello world!");

string str2("Hello");

bool result = istarts_with(str1, str2); // result == true

3 ends_with() 判断一个字符串是否是另外一个字符串的结尾串

4 iends_with() 判断一个字符串是否是另外一个字符串的结尾串(不区分大小写)

5 contains() 判断一个字符串是否包含另外一个字符串

Example:

string str1("hello world!");

string str2("llo");

bool result = contains(str1, str2); // result == true

6 icontains() 判断一个字符串是否包含另外一个字符串(不区分大小写)

7 equals() 判断两个字符串是否相等

8 iequals() 判断两个字符串是否相等(不区分大小写)

9 lexicographical_compare() 按照字典排序,如果第一个字符串小于第二个字符串,返回true (我的boost1.33没有实现?)

返回值: 字符串一样 返回0,小于lpsz 返回-1,大于lpsz 返回1,不区分大小字符。返回值:字符串一样返回0,小于lpsz 返回-1,大于lpsz 返回1, 区分大小字符。查找任何一个不包含在strcharset串中的字符 (字符串结束符null除外) 在string串中首次出现的位置序号. 返回一个整数值, 指定在string中全部由characters中的字符组成的子串的长度. 如果string以一个不包含在strcharset中的字符开头, 函数将返回0值.。

11 all() 判断字符串中的所有字符是否全部满足这个谓词

Example:

bool is_123digit(const char &ch)

{

if(ch == '1' || ch == '2' || ch == '3')

return true;

else

return false;

}

...

string str1("12332211");

bool result = all(str1, is_123digit); // result == true

str1 = "412332211";

result = all(str1, is_123digit); // result == false

四:查找

查找字 串string中首次出现的位置, null结束符也包含在查找中. 返回一个指针, 指向字符c在字符串string中首次出现的位置, 如果没有找到, 则返回null.。在strtoken 串中查找下一个标记, strdelimit字符集则指定了在当前查找调用中可能遇到的分界符. 返回一个指针, 指向在strtoken中找到的下一个标记. 如果找不到标记, 就返回null值. 每次调用都会修改strtoken内容, 用null字符替换遇到的每个分界符.。查找任何一个不包含在strcharset串中的字符 (字符串结束符null除外) 在string串中首次出现的位置序号. 返回一个整数值, 指定在string中全部由characters中的字符组成的子串的长度. 如果string以一个不包含在strcharset中的字符开头, 函数将返回0值.。

Example:

char ToUpper(char &ch)

char ToUpper(char &ch)

{

if(ch <= 'z' && ch >= 'a')

return ch + 'A'-'a';

else

return ch;

}

...

string str1("hello dolly!");

iterator_range<string::iterator> result = find_first(str1,"ll");

transform(strtmp.begin(),strtmp.end(),strtmp.begin(),tolower)。 partial_sort_copy(start, end, result.begin(), result.end()) 。4.case value when [compare-value] then result [when [compare-value] then result ...] [else result] end case when [condition] then result [when [condition] then result ...] [else result] end。

查找任何一个不包含在strcharset串中的字符 (字符串结束符null除外) 在string串中首次出现的位置指针. 返回一个指针, 指向非strcharset中的字符在string中首次出现的位置.。序前 言第1章 泛型程序设计与c++标准库第1条 迭代器第2条 不区分大小写的字符串——之一第3条 不区分大小写的字符串——之二第4条 最大可重用的泛型容器——之一第5条 最大可重用的泛型容器——之二第6条 临时对象第7条 使用标准库第2章 异常安全性问题与技术第8条 编写异常安全的代码——之一第9条 编写异常安全的代码——之二第10条 编写异常安全的代码——之三第11条 编写异常安全的代码——之四。查找任何一个不包含在strcharset串中的字符 (字符串结束符null除外) 在string串中首次出现的位置序号. 返回一个整数值, 指定在string中全部由characters中的字符组成的子串的长度. 如果string以一个不包含在strcharset中的字符开头, 函数将返回0值.。

3 find_last() 从尾查找字符串中的子字符串,返回这个子串在原串中的iterator_range迭代器

4 ifind_last() 从尾查找字符串中的子字符串,返回这个子串在原串中的iterator_range迭代器(不区分大小写)

string find 函数_boost string find_could not find boost

5 find_nth() 找到第n个匹配的子串(计算从0开始)

Example:

string str1("hello dolly!");

iterator_range<string::iterator> result = find_nth(str1,"ll", 1);

transform(strtmp.begin(),strtmp.end(),strtmp.begin(),tolower)。 partial_sort_copy(start, end, result.begin(), result.end()) 。$ awk 'begin { str1 = "hello, "。