string::size_type、string::npos、 string::substr、string::find_first_of、string::replace、string::assign

x33g5p2x  于2022-08-17 转载在 其他  
字(2.0k)|赞(0)|评价(0)|浏览(386)

一、string::size_type()

在C++标准库类型 string ,在调用size函数求解string 对象时,返回值为size_type类型,一种类似于unsigned类型的int 数据。可以理解为一个与unsigned含义相同,且能足够大能存储任意string的类型。在C++ primer 中 提到 库类型一般定义了一些配套类型,通过配套类型,库类型就能与机器无关。我理解为 机器可以分为16位 32位64位等,如果利用int等内置类型,容易影响最后的结果,过大的数据可能丢失。

二、string::npos()

std::string::npos是一个常数,它等于size_type类型可以表示的最大值,用来表示一个不存在的位置

三、 string::substr()

string::substr()是C++语言函数,主要功能是复制子字符串,要求从指定位置开始,并具有指定的长度。如果没有指定长度_Count或_Count+_Off超出了源字符串的长度,则子字符串将延续到源字符串的结尾。

结果是:

think live in details.

四、string::find_first_of()

size_t find_first_of (const string& str, size_t pos = 0)

string::find_first_of() 函数用于查找子字符串和字符串共同具有的字符在字符串中首次出现的位置。请看下面的代码:

运行结果:

Found at index : 3

本例中 s1 和 s2 共同具有的字符是 ’s’,该字符在 s1 中首次出现的下标是3,故查找结果返回3。

五、string::replace()

  1. 应用一:string &replace(size_t pos,size_t len,const &str)被替换位置(pos往后len个字符)
  2. 应用二:string &replace(size_t pos,size_tlen,const string &str,size_t subpos,size_t sublen)被替换位置(pos往后len长度),替换位置(subpos往后sublen长度)
  3. 应用三:string &replace(size_t pos,size_t len,const char* s) 插入C串
  4. 应用四:string &replace(size_t pos,size_t len,const char* cch,size_t n)插入C串前n个字符
  5. 应用五:string &replace(size_t pos,size_t len,size_t n,char c)在指定位置插入指定个c字符
  6. 应用六~应用九:(往后为迭代器操作)
    string &replace(const_iterator it1,const_iterator it2,const string&str)
    string &replace(const_iterator it1,const_iterator it2,const char* cch)
    string &replace(const_iterator it1,const_iterator it2,const char* cch,size_t n)
    string &replace(const_iterator it1,const_iterator it2,size_t n,char c)

具体测试如下:

六、string::assign()

string重新赋值函数string::assign。

*string &assign(const char s);
//用char类型字符串s赋值
*string &assign(const char s,int n);
//用char字符串s开始的n个字符赋值
string &assign(const string &s);
//把字符串s赋给当前字符串
string &assign(int n,char c);
//用n个字符c赋值给当前字符串
string &assign(const string &s,int start,int n);
//把字符串s中从start开始的n个字符赋给当前字符串
string &assign(const_iterator first,const_itertor last);
//把first和last迭代器之间的部分赋给字符串

C++ string assign()赋值常用方法,函数assign()常用在给string类变量赋值。常用方法有:

  1. 直接用另一个字符串赋值.

如str2.assign(str1);即用str1给str2赋值。

  1. 用另一个字符串的一个子串赋值

如str3.assign(str1, 2, 3)。

  1. 用一个字符串的前一段子串赋值;

如str4.assign(“World”, 5)。

  1. 用几个相同的字符,赋值.

如str5.assign(10, ‘c’)。

相关文章