0
点赞
收藏
分享

微信扫一扫

C++中string简述

M4Y 2022-03-14 阅读 75

1.string容器基本概念

本质:

  • string容器是C++风格的字符串,而string本质上是一个类;

string和char*的区别

  • char*是一个指针;
  • string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器;

特点:

string内部封装了很多成员方法,类似find,copy,delete,replace,insertd等;

string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责;

2 string构造函数

构造函数原型

#icnlude<iostream>
#include<string>
using namespace std;
/**
sting();//创建一个空的字符串,例如string str;
string(const char* s);//使用字符串s初始化;
string(const string& str); //使用一个string对象初始化另一个对象
string(int n,char c);//使用n个字符c初始化;
*/
test01()
{
    string s1;
    const char *str = "hello world";
    string s2(str);
    string s3(s2);
    string s4(10,a);
}
int main()
{
    test01();
    return 0
}

3 string 赋值操作

给string字符串进行赋值;

4 string 字符串拼接

实现字符串末尾拼接字符串

 

void test01()
{
    string str1 = "我";
    str1+="想成功";
    cout << str1 <<endl;//输出结果:我想成功;
    //append方法拼接字符串;
    string str3 = "I";
    str3.append("love");
    cout << str3 <<endl;//输出结果:Ilove
   str3.append("whoever",3);
   cout << str3 <<endl;//输出结果:Ilovewho
   str3.append(str1);
   cout << str3<< endl;//输出结果:Ilovewho我想成功;
   str3.append("真好啊难道不是吗?",2 ,5)//
   cout << str3<<endl;//输出结果:Ilovewho我想成功啊难道不是
}
int main()
{
    test01();
    return 0;
}

5string查找和替换

查找:查找指定字符串是否存在

替换:在指定的位置替换字符串

void test01()
{
    string str = "abcdefg";
    int pos = str.find("de");
    cout << pos<<endl;//输出结果:3【d首次出现的位置,如果没有查到,测返回-1】
    //rfind方法
    pos = str.rfind("de");
    cout << pos<< endl;//输出结果:3【rfind是从右往左找】
    //替换方法 
}
void test02()
{
    string str = "abcdefg";
    str.replace(1,3,"1111");
    cout << str<< endl;//输出结果:a1111efg;【cong1号位置起,3个字符替换为“1111”】
}
int main()
{
    test01();
    test02();
    return 0.
}

 

6 字符串比较

功能描述:字符串之间的比较

 

void test01()
{
    string str1 = "hello";
    string str2 = "hello";
    if(str1.compare(str2) == 0)
    {
        cout << "两个字符串相等" << endl;
    }
    else if(str1.compare(str2) >0)
    {
        cout << "str1大于str2" << endl;
    }else if(str1.compare(str2))
    {
        cout << "str1小于str2" << endl;
    }
}
int main()
{
    test01();
    return 0;
}

7string字符存取

string中单个字符存取方式有两种

void test01()
{
    string str = "hello";
    cout << str<< endl;
    //1.通过[]方法取字符
    for(int i = 0;i < str.size();i++)
    {
        cout << str[i]<< " ";
    }
   //2.通过at方法获取字符
    for(int i = 0;i<str.size();i++)
    {
        cout << str.at(i)<< endl;
        //修改字符
        str.at(2)= X;
        cout << str.at(i)<<endl;//输出结果:heXlo;
    }
}

 

8 string插入和删除

功能描述:对string字符串进行插入和删除字符操作

void test01()
{
    string str = "hello";
    //插入
    str.insert(1,"111");
    cout <<str<< endl;//输出结果;h111ello
    //删除
    str.erase(1,3);//1是1的下标位置,3是删掉3个元素
    cout << str<< endl;//输出结果:hello
}

 

9strig字串

功能描述:从字符串中获取想要的字串

void test01()
{
    string str = "abcdefgh"l
    string strSub = str.substr(1,3);
    cout << strSub << endl;//输出结果:bcd; 
}
void test02()
{
    //从邮件中截取用户信息
    string email = "zhangsan@qq.com";
    int pos = email.find("@");
    string userName = email.substr(0,pos);
    cout << userName << endl;//输出结果:zhangsan;
}
int main()
{
   test01();
   test02();
   return 0;
}

 

举报

相关推荐

C++中的string

c++文件操作简述

【C++】string

c++ string

C++ string

C++——string

c++中string类型的长度

0 条评论