string容器

string就是一个类

1.string 的构造函数
在这里插入图片描述

#include <string>			//包含头文件
using namespace std;

int main(int argc, char *argv[])
{
    string s1;      //默认构造
    
    const char * str = "hello world";			//使用字符串s进行初始化
    string s2(str);
    
    string s3(s2);  		//拷贝构造
    
    string s4(10, 'a');    //初始化n个相同的字符,输出"aaaaaaaaaa"

2.string的赋值
在这里插入图片描述

string str1;
str1 = "hello";

string str2;
str2 = str1;

string str3;
str3.assign("hello");			//成员函数

string str4;
str4.assign(str3);

string str5;
str5.assign("hello",3);			//将前三个字符录入str5中

3.字符串拼接
在这里插入图片描述

string str1;
str1 = "hello"
str1 += "hi";			//运算符的重载

string str2 = "kitty";
str2 += str1;

string str3 = "hello";
str3.append("hi");

string str4 = "hello";
str4.append(str3);

4.字符串查找和替换
在这里插入图片描述

string str1 = "abcdefgde";
int pos = str1.find("de")		//这里的pos等于3,代表位置,从0开始计数,如果没有返回-1.
//还有一个rfind函数,find是从左往右查找,rfind是从右往左查找,但计数还是从左往右计数 
int pos = str1.rfind("de");    //这里的pos等于7.

string str2 = "abcdefg";
str2.replace(1, 3, "1111");		//str2 = "a1111efg"
//从第一个位置起往后三个数替换成后面的字符串,如果字符串较多也会全部替换
函数原型中的const string& str就是一个新的string类型的值,例如str3
		   const char *s就是一个字符串,例如"hello"

5.字符串比较
函数原型

string str1 = "hello"
string str2 = "hello"
str1.compare(str2) == 0		//相等
str1.compare(str2) > 0		//str1>str2

6.string的插入和删除
函数原型

string str1 = "sello";
string str2 = "kitty";
str1.insert(1, str2);			//skittyello

string str1 = "sello";
str1.erase(1, 2);			//slo

7.获取子串
函数原型

string str1 = "sello";
string s = str1.substr(1, 3);			//ell

8.配合的实用操作

string email = "zhangsan@sina.com"
int pos = email.find('@');
string usr = email.substr(0,pos);

9.c_str函数
把string对象转换成c中的字符串的样式;
strcpy(c,s.c_str());这样用才是正确的,因为c_str返回的是一个临时的指针

10.string::npos
有两种用法:

	string filename = "test.cpp";  
    cout << "filename : " << filename << endl;  
  
    size_t idx = filename.find('.');   //作为返回值表示没有找到匹配项 
    if(idx == string::npos)      
    {  
        cout << "filename does not contain any period!" << endl;  
    }  
    else  
    {  
        string tmpname = filename;  
        tmpname.replace(idx + 1, string::npos, "xxx"); //作为函数的长度参数,表示直到字符串结束  
        cout << "repalce: " << tmpname << endl;  
    }  

执行结果为:
filename:test.cpp

replace: test.xxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值