c++ STL 之 string

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");

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值