1.string 基本概念
string 和 char*区别
●char * 是一个指针
●string是一个类,类内部封装了char ,管理这个字符串,是一个char型容器
特点:
string类内部封装了很多成员方法
列如(查找find,拷贝copy,删除delete 替换replace,插入insert)
string 管理char* 所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。
2.string构造函数
构造函数原型:
●string(); ----创建一个空的字符串列如:string str;
●string(const char * s); ------- //使用字符串s初始化;
●string (const string& str)---------使用一个string对象初始化另一个string对象
●string(int n,char c)-0-----------使用n个字符c初始化
**
3.string赋值操作
赋值函数原型:
●string& operator=(const char* s);----//char *类型字符串 赋值给当前的字符串。
●string &operator=(const string &s);----//把字符串s赋值给当前的字符串
●string& operator=(char c);------//把当前字符赋给字符串。
●string& assign(const char s)-----//把字符串s赋给当前的字符串
●string &assign(const chars,int n);—//把字符串的前n个字符赋给当前字符
●string &assign(const string &s)------把字符串s,赋给当前字符串
●string &assgin(int n,char c )-------//把n个c,赋给当前字符串
4.字符串的拼接
assign();函数assign()常用在给string类变量赋值.
5,。字符串查找和替换
替换(replace)
语法:
basic_string &replace( size_type index, size_type num, const basic_string &str );
basic_string &replace( size_type index1, size_type num1, const basic_string &str, size_type index2,
size_type num2 );
basic_string &replace( size_type index, size_type num, const char *str );
basic_string &replace( size_type index, size_type num1, const char *str, size_type num2 );
basic_string &replace( size_type index, size_type num1, size_type num2, char ch );
basic_string &replace( iterator start, iterator end, const basic_string &str );
basic_string &replace( iterator start, iterator end, const char *str );
basic_string &replace( iterator start, iterator end, const char *str, size_type num );
basic_string &replace( iterator start, iterator end, size_type num, char ch );
释义:
replace()函数:
用str中的num个字符替换本字符串中的字符,从index开始
用str中的num2个字符(从index2开始)替换本字符串中的字符,从index1开始,最多num1个字符
用str中的num个字符(从index开始)替换本字符串中的字符
用str中的num2个字符(从index2开始)替换本字符串中的字符,从index1开始,num1个字符
用num2个ch字符替换本字符串中的字符,从index开始
用str中的字符替换本字符串中的字符,迭代器start和end指示范围
用str中的num个字符替换本字符串中的内容,迭代器start和end指示范围,
用num个ch字符替换本字符串中的内容,迭代器start和end指示范围.
例如,以下代码显示字符串"They say he carved it himself…find your soul-mate, Homer."
string s = “They say he carved it himself…from a BIGGER spoon”;
string s2 = “find your soul-mate, Homer.”;
s.replace( 32, s2.length(), s2 );
cout << s << endl;
6.字符串比较
字符串对比主要是用于比较两个字符串是否相等。
7,字符存取
char &operator[ ](int n);
char &at(in n)
8.string 插入和删除
插入和删除的起始下标都是从0,开始
函数原型:
●string& insert(int pos,const char* s); ------//插入字符串
●string&
●
●string& erase(int pos ,int n);-------//删除从pos开始的n个字符
9.string子串
函数原型:
string substr (int pos ,int num);-------//返回由pos 开始的n个字符组成的字符串。
substr()返回本字符串的一个子串,从index开始,长num个字符。如果没有指定,将是默认值 string::npos。这样,substr()函数将简单的返回从index开始的剩余的字符串。