string的基本概念
本质
string本质上是一个类,是c++的字符串风格
特点
string类内部封装了许多成员方法
例如:查找find、拷贝copy、删除delete、替换replace、插入insert
string的构造方法
构造函数原型(分为四种):
~ sreing () ; //创建一个空字符串
~ string (const char* s); //适用字符串s初始化
~ string (const string& str); //使用一个string对象初始化另一个string对象
~ string (int n,char c) ; //使用n个字符c初始化
代码呈现
#include <iostream>
#include <string>
using namespace std;
void test1 ()
{
//创建string字符串的四种方式
//方式1
string str1 ;
//方式2
const char* str = "hello world";
string str2 (str);
cout << "str2 = " << str2 << endl;
//方式3
string str3 (str2);
cout << "str3 = " << str3 << endl;
//方法4
string str4 (10,'s');
cout << "str4 = " << str4 << endl;
}
int main ()
{
test1();
return 0;
}
string的多种构造方式没有可比性,灵活使用即可
string赋值操作
赋值的函数原型
~ string& operator = (const char* s); //char*类型字符串 赋值给当前字符串
string str1 ;
str1 = "hello world";
~ string& operator = (const string &s); //把字符串s赋给当前字符串
string str1 , str2;
str1 = "hello world";
str2 = str1;
~string& operator = (char c); //把字符赋值给当前字符串
string str1 ;
str1 = 's';
~string& assign (const char *s); //把字符串s赋给当前的字符串
string str1;
str1.assign ("hello world");
~string& assign(const char *s,int n); //把字符串s的前n个字符赋给当前的字符串
string str1;
str1.assign ("hello world",5);
~string& assign (const string &s); //把字符串s赋给当前字符串
string str1 , str2 ;
str1 = "hello world";
str2.assign (str1);
~string& assign (int n,char c); //用n个字符c赋给当前字符串
string str1;
str1 (6,'a');
string字符串拼接
功能
实现在字符串末尾拼接字符串
函数原型
~ string& operator += (const char* str); 重载+=操作符
string str1 = "I";
str1 += " love ";
~ string& operator += (const char c); 重载+=操作符
string str1 = "I";
str1 += ':';
~ string& operator += (const string& str); 重载+=操作符
string str1 = "I";
string str2 = " love ";
str1 += str2;
~ string& append (const char *s); 把字符串s连接到当前字符串结尾
string str1 = "我";
str1.append ("玩");
~ string& append (const char *s,int n); 把字符串s的前n个字符串连接到当前字符串结尾
string str1 = "我";
str1.append ("玩游戏",1);
~ string& append (const string &s); 同operator += (const string& str)
string str1 = "我";
string str2 = "玩";
str1.append (str2);
~ string& append (const string &s,int pos , int n); 字符串s中从pos开始的n个字符连接到字符串结尾
string str1 = "I play ";
string str2 = "game uzvbghdsbk n";
str1.append (str2,0,4);
string字符串的查找
功能
查找指定字符串是否存在
函数原型
~ int find(const string& str,int pos = 0) const; 查找str第一次出现的位置,从pos开始查找
string str1 = "abcdefghijk";
string str2 = "ij";
int pos = str1.find(str2);
~ int find(const char* s,int pos = 0) const; 查找s第一次出现位置,从pos开始查找
string str1 = "abcdefghik";
int pos = str1.find ("gh");
~ int find (const char* s,int pos,int n) const; 从pos位置查找s的前n个字符第一次出现的位置
string str1 = "abcdefghijk";
int pos = str1.find("fghasfsdfaf",0,3);
~ int find (const char c,int pos = 0); 查找字符c第一次出现的位置
string str1 = "abcdefghijk";
int pos = str1.find ('h');
以下展示rfind的函数将不展示例子,与find相同。
~ int rfind (const string& str, int pos = npos) const; 查找str最后一次位置,从pos开始查找
~ int rfind (const char* s,int pos = npos ) const; 查找s最后一次出现位置,从pos开始查找
~ int rfind (const char* s,int pos ,int n) const; 从pos查找s的前n个字符最后出现位置
~ int rfind (const char c,int pos = 0) const; 查找字符c最后一次出现位置
string替换
功能
在指定的位置替换字符串
函数原型
~ string& replace (int pos ,int n,const string& str); 替换从pos开始的n个字符为字符串str
string str1 = "abcdefghijk";
string str2 = "11111111";
str1.replace (3,4,str2);
~ string& replace (int pos, int n,const char* s); 替换从pos开始的n个字符为字符串s
string str1 = "11111111111111111";
str1.replace (3,4,"cuauvicdsbj");