string
string s (5,'s'); //sssss
int len = s.length; //5
FILE *fp = fopen(path.c_str(), "rt"); //c_str()转化为c语言字符串
s[4] = '5'; //使用下标访问和修改
string s3 = s1 + s2; //使用+来拼接
s1.insert(2,s3); //使用insert在某位置插入另一个字符串
s2.erase(5); //删除第五个字符以后的所有字符
s2.erase(5,3); //删除第五个字符以后的3个字符
s3 = s2.substr(6,6); //提取从第六个字符以后得6个字符
//substr和erase类似,pos越界会抛出异常,len越界会截止到字符串尾
int index = s1.find(s2,5); //在s1中查找s2,从第五位开始,可不传(不影响index值依然从第一位还是数)
int index = s1.rfind(s2,6); //在s1中查找s2,截至到第六位
int index = s1.find_first_of(s2); //查找s2和s1共同字符在s1中首次出现的位置
string s2 = s1; //深拷贝的效果(实际并不是)
//只有当字符串修改的时候才会创建各自的拷贝,这种方式称为写时拷贝策略(copy-on-write)。
网友评论