STL 的string类怎么啦

下面我将为您详细讲解STL的string类的使用方法:

STL的string类

string类是STL中的一个重要组件,它是一个可变长度的字符串容器,支持字符串的插入、删除、查找、替换等操作。可以通过#include <string>来包含string类的头文件。

创建string对象

我们可以通过多种方式来创建string对象。比如:

// 创建空的string对象
std::string str1;

// 创建长度为5,值为'a'的string对象
std::string str2(5, 'a');

// 通过字符串字面量初始化
std::string str3 = "hello world";

// 通过string对象的复制来初始化
std::string str4 = str3;

string对象的基本操作

赋值操作

string对象在赋值时会把原来的内容全部清除。有多种方式可以对string对象进行赋值操作。

std::string str1 = "hello";
std::string str2 = "world";

// 1. 使用赋值运算符(=)
str1 = str2;

// 2. 使用assign函数的第一种形式
str1.assign(str2);

// 3. 使用assign函数的第二种形式,赋值字符串的一部分
std::string str3 = "hello";
str3.assign("world", 0, 3);  // str3的值变为"wor"

连接操作

我们也可以把两个string对象连接在一起。

std::string str1 = "hello";
std::string str2 = "world";

// 1. 使用加号(+)
std::string str3 = str1 + str2;

// 2. 使用append函数
std::string str4 = str1;
str4.append(str2);

查找操作

string对象也支持查找操作,可以通过find函数或rfind函数来查找指定的子串。

std::string str = "hello world";

// 1. 查找子串是否存在
bool flag1 = str.find("world") != std::string::npos;

// 2. 查找子串出现的位置
size_t pos1 = str.find("world");

// 3. 从右侧开始查找子串
size_t pos2 = str.rfind("world");

替换操作

我们也可以使用string对象的replace函数来实现字符串的替换。

std::string str = "hello world";

// 1. 替换指定位置的子串
str.replace(0, 5, "hi");

// 2. 替换指定范围的子串
str.replace(6, 5, "there");

插入操作

我们也可以使用string对象的insert函数来实现字符串的插入操作。

std::string str = "hello world";

// 在指定位置插入子串
str.insert(0, "hi");

示例1:使用string类实现字符翻转

下面是一个示例程序,使用string类实现字符翻转的功能。

#include <iostream>
#include <string>

int main()
{
    std::string str = "hello world";
    int len = str.length();

    for (int i = 0; i < len / 2; ++i)
    {
        char temp = str[i];
        str[i] = str[len - i - 1];
        str[len - i - 1] = temp;
    }

    std::cout << str << std::endl;

    return 0;
}

示例2:使用string类实现字符串查找

下面是一个示例程序,使用string类实现字符串查找的功能。

#include <iostream>
#include <string>

int main()
{
    std::string str = "hello world";
    std::string sub_str = "world";

    size_t pos = str.find(sub_str);

    if (pos != std::string::npos)
    {
        std::cout << "找到了子串:" << sub_str << std::endl;
    }
    else
    {
        std::cout << "没有找到子串:" << sub_str << std::endl;
    }

    return 0;
}

以上就是STL的string类的简单使用方法,希望能对您有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:STL 的string类怎么啦 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C++ Boost Pool超详细讲解

    C++ Boost Pool超详细讲解 概述 C++ Boost库中的Pool库是一个有用的内存分配和管理库。它是一个头文件库,可以在C++程序中使用,使内存管理变得更加高效和简单。它的目标是在没有垃圾收集器的情况下提高内存分配的效率。 Pool库提供了两个主要的类来支持内存池: boost::pool: 这个类定义了一个通用内存池,可以用于管理任意大小的对…

    C 2023年5月23日
    00
  • 基于C语言实现http下载器

    下面是基于C语言实现http下载器的完整攻略: 1. 准备工作 要实现一个基于C语言的http下载器,需要进行如下准备工作: 1.1 确定要下载的文件 要下载的文件应该是什么,需要事先确定好。可以通过在浏览器上访问该文件的url,复制浏览器中的url地址,保存到一个文件中。 1.2 了解http协议 http协议是一种应用层协议,规定了浏览器和服务器之间的通…

    C 2023年5月23日
    00
  • QT实现将两个时间相加的算法[hh: mm + hh: mm]的示例代码

    下面是使用QT将两个时间相加的算法的示例代码和完整攻略: 1. 代码实现 #include <QTime> QTime addTime(const QTime &time1, const QTime &time2) { int minutes = (time1.minute() + time2.minute()) % 60; in…

    C 2023年5月22日
    00
  • Go 使用Unmarshal将json赋给struct出错的原因及解决

    问题描述 在使用Go语言的Unmarshal函数将json数据赋给struct时,可能会遇到一些出错的情况。 下面是一个例子: package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int } func ma…

    C 2023年5月23日
    00
  • Python 中的json常见用法实例详解

    Python 中的 JSON 常见用法实例详解 什么是 JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它基于 JavaScript 的语法规则,但具有更加简单易读的特点。JSON 格式的数据可以被快速解析和生成,是一种纯文本格式,可以通过网络进行通信,也可以存储在本地。因此它在 Web 应用中得到了…

    C 2023年5月23日
    00
  • 非常经典的C语言趣味题目

    下面是“非常经典的C语言趣味题目”的完整攻略。 1.题目描述 题目描述:输入一个正整数n,按十进制输出n的二进制表示,并输出其中1的个数。 2.思路分析 1.输入一个正整数n;2.将n转换成二进制表示。对于十进制数,可以不断对2取余数和商,然后将余数倒序排列起来就可以得到二进制表示,具体可以使用循环实现;3.遍历二进制表示,数出其中1的个数。 3.代码实现 …

    C 2023年5月23日
    00
  • 彩虹六号围攻显示0xc0000005错误怎么办

    彩虹六号围攻显示0xc0000005错误的解决方法 问题描述 彩虹六号围攻是一款热门的战术射击游戏,在玩家使用该游戏过程中可能会遇到显示0xc0000005错误的问题。 该问题的表现形式为游戏会在启动时崩溃,并显示错误代码0xc0000005。 解决方法 该问题通常是由于游戏文件损坏、操作系统问题或者驱动冲突造成的。以下是一些可能的解决方法。 方法一:重新安…

    C 2023年5月23日
    00
  • 02-VS调试以及Qt基本使用

    VS调试以及Qt基本使用 1.汇编语言 1.1 VS中C语言嵌套汇编代码(了解) #include <stdio.h> int main() { //定义整型变量a, b, c int a; int b; int c; __asm { mov a, 3 //3的值放在a对应内存的位置 mov b, 4 //4的值放在b对应内存的位置 mov ea…

    C语言 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部