zoukankan      html  css  js  c++  java
  • stl(3)string容器1

    在C语言里面,字符串用char*来声明。在c++中定义了string类,包含在头文件<string>中。

    string中封装了char*,是一个char*的容器,并且提供了很多实用的成员方法。

    使用string的时候不用像char*需要考虑内存的释放和越界,这些都由string类内部进行管理。

    1.创建string对象

    (1)创建一个空字符串

    string str;

    (2)使用一个字符串初始化string

    string str("test");

    (3)使用一个string对象初始化另一个对象

    string str("test");

    string str1(str);

    (4)使用n个相同字符初始化string对象

    string str(10,'a');

    2.使用‘=’对string进行赋值操作

    (1)使用字符串对string对象进行赋值

    string str = "test";

    (2)将一个string对象赋值给另一个string对象

    string str ="test";

    string str1 = str;

    (3)将一个字符赋值给string对象

    string str = 'a';

    3.使用assign对string对象进行赋值操作

    (1)使用字符串对string对象进行赋值

    string str;str.assign("test");

    (2)用字符串的前n个字符对string对象进行赋值

    string str;str.assign("test",2);

    (3)将一个string对象赋值给另一个string对象

    string str;

    string str1 = "test";

    str.assign(str1);

    (4)使用n个相同的字符对string对象进行赋值

    string str;str.assign(10,'a');

    (5)截取一个string对象的从第n个字符开始(n从0开始),取m个字符赋值给另一个string对象

    string str = "woshidashab";

    string str1;

    str1.assign(str,0,5);//从str的第0个字符开始取5个字符赋值给str1

    4.使用[]访问string对象中的指定字符

    string str = "test";

    for(int i = 0;i<str.size();i++){

    std::cout<<str[i]<<std::endl;

    }

    4.使用at访问string对象中的指定字符

    string str = "test";

    for(int i = 0;i<str.size();i++){

    std::cout<<str.at(i)<<std::endl;

    }

    5.使用[]和at访问string对象中的字符的区别

    使用[]访问时如果越界程序会直接挂掉,使用try{}catch{]不能捕获到异常

    使用[]访问时如果越界程序会抛出一个out_of_ranged的异常,使用try{}catch{]可以捕获到该异常

    6.使用‘+=’进行字符串的拼接

    (1)拼接一个string对象

    string str="hello ";

    string str1="world!";

    str+=str1;

    (2)拼接一个字符串

    string str="hello ";

    str+=“world!”;

    (3)拼接一个字符

    string str = "this is ";

    str +='a';

    7.使用append进行字符串的拼接

    (1)拼接一个字符串

    string str = "hello ";

    str.append("world");

    (2)取字符串的前n个字符拼接到原字符串后面

    string str = "hello ";

    str.append("world",5);

    (3)拼接一个string对象

    string str = "hello ";

    string str1 = "world";

    str.append(str1);

    (4)将一个string对象从n开始取m个字符拼接到原字符串的后面

    string str = "hello ";

    string str1 = "world";

    int n = 0;

    int m = 5;

    str.append(str1,n,m);

    (5)拼接n个相同的字符c

    string str = "test";

    int n = 5;

    char c = 'a';

    str.append(n,c);

    8.使用find进行字符串的查找,如果找到指定字符串则返回该字符串第一次出现的位置,找不到返回-1

    (1)在string对象str中,从第n个字符开始查找,查找第一次出现string对象str1的位置

    string str = "this is a test";

    string str1 = "is";

    int n =0;

    int pos = str.find(str1,n);//n可以不传,不传的话默认是0

    (2)在string对象str中,从第n个字符开始查找,查找第一次出现字符串“is”的位置

    string str = "this is a test";

    int n =0;

    int pos = str.find("is",n);

    (3)在string对象str中,从第n个字符开始查找,查找字符串“isaa”的前2个字符第一次出现的位置

    string str = "this is a test";

    int n =0;

    int pos = str.find("isaa",n,2);

    (4)在string对象str中,从第n个字符开始查找,查找字符c第一次出现的位置

    string str = "this is a test";

    char c = 'h';

    int n =0;

    int pos = str.find(c,n);

    8.使用rfind进行字符串的查找,如果找到指定字符串则返回该字符串最后一次出现的位置,找不到返回-1

    (1)在string对象str中,从第n个字符开始查找,查找最后一次出现string对象str1的位置

    string str = "this is a test";

    string str1 = "is";

    int n =0;

    int pos = str.rfind(str1,n);//n可以不传,不传的话默认是0

    (2)在string对象str中,从第n个字符开始查找,查找最后一次出现字符串“is”的位置

    string str = "this is a test";

    int n =0;

    int pos = str.rfind("is",n);

    (3)在string对象str中,从第n个字符开始查找,查找字符串“isaa”的前2个字符最后一次出现的位置

    string str = "this is a test";

    int n =0;

    int pos = str.rfind("isaa",n,2);

    (4)在string对象str中,从第n个字符开始查找,查找字符c最后一次出现的位置

    string str = "this is a test";

    char c = 'h';

    int n =0;

    int pos = str.rfind(c,n);

    9.使用replace进行字符串的替换

    (1)在string对象str中,将从n开始的m个字符替换为string对象str1

    string str = "this is a test";

    string str1 = "aa";

    int n = 0;

    int m = 2;

    str.replace(n,m,str1);

    (2)在string对象str中,将从n开始的m个字符替换为字符串“aa”

    string str = "this is a test";

    int n = 0;

    int m = 2;

    str.replace(n,m,"aa");

  • 相关阅读:
    Volley(二)—— 基本Request对象 & RequestQueue&请求取消
    进程ps、kill 、grep
    vi常用命令
    查看linux系统版本
    linux下U盘的读取
    linux下文件夹的创建、复制、剪切、重命名、清空和删除命令
    Python 列表
    Python 数据运算
    Python pyc知识了解
    Python for循环
  • 原文地址:https://www.cnblogs.com/maycpou/p/14208560.html
Copyright © 2011-2022 走看看