本质 #
string是C++风格的字符串,而string本质上是一个类
string和char * 区别
#
char * 是一个指针
string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。
特点 #
string 类内部封装了很多成员方法
例如:查找find,拷贝copy,删除delete 替换replace,插入insert
string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责
string构造函数 #
构造函数原型:
string();创建一个空的字符串 例如:string str;
string(const char* s);使用c语言字符串s初始化
string(const string& str);使用一个string对象初始化另一个string对象(拷贝构造)
string(int n, char c);使用n个字符c初始化
例子:
#include<iostream>
#include<string>
using namespace std;
int main(){
//1、默认无参构造,创建空字符串
string str1;
str1 = "str1";
cout << str1 << endl;
//2、使用c语言字符串初始化string
char * ch = "str2";
string str2(ch);
cout << str2 << endl;
//3、使用string类型的字符串引用初始化新的字符串
string temp = "str3";
string str3(temp);
cout << str3 << endl;
//4、使用n个相同字符来初始化字符串
string str4(5,'a');
cout << str4 << endl;
system("pause");
return 0;
}
常用API #
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 char *s, int n);把字符串s的前n个字符赋给当前的字符串string& assign(const string &s);把字符串s赋给当前字符串string& assign(int n, char c);用n个字符c赋给当前字符串
例子: