C++ string类的构造函数

string类的构造函数共6个:


size_type-依赖于实现的整型

n_pos-字符串的最大长度

NBTS-(null-byte-terminated string)表示以空字符结束的字符串-传统的C-风格字符串


1>string(const char *s):    //将string对象初始化为C—风格字符串

例:string one("First constructor!");  //one="First constructor!"

2>string(size_type n,char c) //创建一个包含n个元素的string对象,其中每个元素都被初始化为字符c

例:string two(20,'$') ; //two="$$$$$$$$$$$$$$$$$$$$"

3>string(const string &str,string size_type n=npos) //将string对象初始化为对象str中从位置pos开始到结尾的字符,或从位置pos开始的n个字符

例:string three(one,2);  //将three初始化为:one从下标为2的字符到末尾的字符串three="rst constructor!"

     F  i  r  s  t  constructor!

     0 1 2  3 4 5...

例:string three(one,2,3);  //three="rst"

4>string()   //string的默认构造函数

5>string(const char *s,size_type n) //将string对象初始化为s指向的NBTS中的前n个字符,即使超过了NBTS结尾

例:char str[]="How are you?"

string five(str,5);  //five="How a",初始化为字符数组的前5个 字符

例:string five(str,15);  //15>12(strlen(str)), five="How are you?###",补齐到15个

6>template string(Iter begin,Iter end) //将string对象初始化为区间[begin,end)内的字符

例: string six(str+2,str+5);  //six="w a",不包括str+5

例: string six(five+1,five+3) //Error!对象名和数组名不同,不能被看作地址-------------------------------------

      stirng six(&five[1],&five[3])  //Right

你可能感兴趣的:(C/C++)