C++ string类成员函数介绍:

目录

🤔string本质

      🔍string和char *区别:

       🔍特点:

🤔string的各种成员函数:

          🔍1.string 构造函数

          🔍2.string 赋值函数

          🔍3.string 字符串拼接

          🔍4.string 查找和替换字符串

          🔍5.string 字符存取

          🔍6.string插入与删除

          🔍7.string子串

🤔结束!


🤔string本质

📖string是c++风格的字符串,而string本质上是一个

      🔍string和char *区别:

             📖1.char * 是一个指针。

             📖2.string 是一个类,类内部封装了 char *,是一个char *类型的容器

       🔍特点:

            📖string类内部封装了很多的成员方法:

           📖例如  查找find,拷贝copy,删除delete ,插入insert

           📖string管理char*所分配的内存,因此我们不用担心复制越界取值越界等,这些统一由类内部赋值。

🤔string的各种成员函数:

🔍1.string 构造函数

📖创建一个空的字符串string ();

string str;

📖使用字符串s进行初始化string (const char *s);

char s[10] = "aaaaaaaaa";
string  c = string(s);

📖使用一个string类型的对象初始化另外一个string对象string(const string &str);

string b = string(c);

📖使用n个字符初始化string(int n,char)

string d = string(n, 'c');

🔍2.string 赋值函数

📖把char *类型字符串赋值给当前的字符串:string &operator =(const char *s);

string  str1;
str1 = "aaaaaa";

📖把string类型的字符串赋值给当前字符串:string &operator=(const string *s);

string str2;
str2 = str1;

📖把字符赋值给当前的字符串:string &operator=(char c);

string str3;
str3 = 'a';

📖把字符串s赋值给当前字符串:string assign(const char *s);

string str4;
str4.assign("hellodsd");

📖把字符串s中的前n个字符赋值给当前字符串 string assign(const char *s,int n);

string str5;
str5.assign("hello c++", n);

📖把字符串s中的从第n个开始的一直到结束的字符赋值给当前字符串:string assign(string s,int n);

string str4;
str4.assign("hellodsd");
string str8;
str8.assign(str4, n);

📖把字符串赋值给当前字符串:string assign (const string &s);

string str6;
str6.assign(str5);

📖把n个字符赋值给当前字符串:string assign(int n,char c);

string str7;
str7.assign(n, 'c');

🔍3.string 字符串拼接

📖把字符串拼接到一个string类型的对象的字符串尾部:string&  operator +=(coonst char *str);

string str1 = "我";
str1 += "爱玩游戏";

📖把一个字符拼接到一个string类型的对象的字符串尾部:string&  operator +=(const char c);

str1 += "S";

📖把一个string类型的对象拼接到另外一个string类型对象字符串的尾部:string&  operator +=(const string &str);

string str1 = "我";
string str5 = "爱玩王者荣耀";
str1 += str5;

📖把字符串s连接到当前字符串结尾:string& append (const char *s);

string str1 = "我";
str1.append("asdas");

📖把字符串前n个字符连接到当前字符串末尾:string& append (const char *s ,int n);

str1.append("asdas", n);

📖把字符串s中从pos开始的n个字符连接到字符串结尾:string& append(const string &s,int pos,int n);

str1.append("asdasda", pos, n);

🔍4.string 查找和替换字符串

📖从pos位置开始查找s在str1字符串第一次出现的位置:int find(const stris, int pos = 0);

存在返回位置不存在返回-1;

string str1 = "asdasda";
int pos = str1.find("da");

📖查找字符串s在str1字符串中第一次出现的位置,从pos开始查找:int find(const char* s, int pos = 0);

string str1 = "asdasda";
int pos = str1.find("asdas",pos);

📖从pos查找s的前n个字符在字符串str1中第一次出现的位置:int find(const char* s, int pos, int n);

string str1 = "asdasda";
int m = str1.find("ad", pos, n);

📖查找字符c在str1中从第一次出现位置:int find(const char c, int pos = 0);

string str1 = "asdasda";
int pos = str1.find("a",pos)

📖查找str2在str1从pos位置开始查找的最后一次位置:int rfind(const string& str, int pos = npos)

string str1 = "asdasda";
string str2 = "ad";
int pos = str1.rfind(str2,pos);

📖从str1的pos位置开始向前查找s的前n个字符在str1最后一次位置:int rfind(const char* s, int pos, int n);

📖pos:表示从哪个位置开始搜索,默认为字符串的末尾。如果指定了这个参数,则从指定的位置开始向前搜索。

📖n:表示要搜索的子字符串的长度。默认为字符串的长度。如果指定了这个参数,则不会搜索超过指定长度的子字符串。

string str1 = "asdasda";
int pos = str1.rfind("dadade",pos,n);

📖替换str1从pos开始的n个字符为字符串str:string& replace(int pos, int n, const string& str);

string str1 = "asdasda";
string str2 = "qwert";
str1.replace(0, 2, str2)

📖替换从pos开始的n个字符为字符串s:   string& replace(int pos, int n, const char* s);

string str1 = "asdasda";
str1.replace(0, 4, "s");

🔍5.string 字符存取

string 中单个字符存取方式有两种:
📖1.char &operator [](int n);    通过[]方式取字符

#include<iostream>
using namespace std;
#include<string>
int main()
{
	string str = "hello";
	for (int i = 0; i < str.size(); i++)
	{
		cout << str[i] << " ";
	}
	
}


📖2.char &at(int )   通过at方法取字符

#include<iostream>
using namespace std;
#include<string>
int main()
{
	string str = "hello";

	for (int i = 0; i < str.size(); i++)
	{
		cout << str.at(i) << " ";
	}

}

🔍6.string插入与删除

📖在str1的pos的位置插入字符串s:   string & insert(int pos,const char *s);

string str1 = "hello";
str1.insert(pos, "111");

📖在str1的pos位置上插入str2:string & insert(int pos,const string &str);

string str1 = "hello";
string str2 =  "C++";
str1.insert(pos, str);

📖在str1上指定一个pos位置插入n个字符c:string & insert(int pos,int n,char s);

string str1 = "hello";
str1.insert(pos, n, 'c');

📖删除从pos开始的n个字符:string & erase(int pos,int n=npos);

string str1 = "hello";
str1.erase(pos, n);

🔍7.string子串

📖返回str1从pos到n的字符串:string substr(int pos=0,int n=npos);

string str = "abcdefg";
string str1 = str.substr(0, 2);

🤔结束!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一盘牛肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值