C++ string

示例

#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;

int main()
{
    //构造
    string s1 = "s1";
    string s2 = s1;
    string s3(5, 'a');
    string s4(s1);
    cout << "-------构造结果--------" << endl;
    cout << s1 << endl;
    cout << s2 << endl;
    cout << s3 << endl;
    cout << s4 << endl;
    //操作符重载
    cout << "-------操作符重载--------" << endl;
    cout << (s1 == s2) << endl;
    string s5 = s1 + "+s5";
    cout << s5 << endl;
    cout << (s1 > s5) << endl;
    for (int i = 0; i < s5.size(); i++) {
        cout << s5[i] << "|" << s5.at(i) << "  ";
    }
    cout << endl;
    //长度
    cout << "-------s5长度--------" << endl;
    cout << s5.length() << " " << s5.size() << endl;
    //字符串追加
    cout << "-------s5追加--------" << endl;
    s5.append("->append");
    cout << s5 << endl;
    s5.append("->123456", 2, 2);
    cout << s5 << endl;
    //字符串截取
    cout << "-------截取--------" << endl;
    s5 = s5.substr(3, 2);
    cout << s5 << endl;
    cout << "-------s5和s1交换--------" << endl;
    //字符串内容交换
    s5.swap(s1);
    cout << s5 << endl;
    s5.swap(s1);
    //查找
    cout << "-------查找--------" << endl;
    s1 = "abcdabcd123123";
    int index = s1.find('a', 1);
    cout << index << endl;
    index = s1.find("cd", 3);
    cout << index << endl;
    //替换
    cout << "-------替换--------" << endl;
    s1.replace(0, 4, "1234");
    cout << s1 << endl;
    //插入
    cout << "-------插入--------" << endl;
    s1.insert(4, "[insert]");
    cout << s1 << endl;
    //迭代器正向/反向
    cout << "-------迭代器正向/反向遍历--------" << endl;
    for (string::iterator it = s1.begin(); it != s1.end(); it++) {
        cout << *it;
    }
    cout << endl;
    for (string::reverse_iterator it = s1.rbegin(); it != s1.rend(); it++) {
        cout << *it;
    }
    return 0;
}

运行结果.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏nummy

python双端队列deque

由于deque是一种序列容器,因此同样支持list的一些操作,如用getitem()检查内容,确定长度,以及通过匹配标识从序列中间删除元素。

892
来自专栏武军超python专栏

2018-7-18pythoh中函数的参数,返回值,变量,和递归

********************************************************************************...

1454
来自专栏黑泽君的专栏

JDK5中Lock锁的使用

(1)JDK5中Lock锁的使用   虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的...

1131
来自专栏前端儿

大小写互换

  现在给出了一个只包含大小写字母的字符串,不含空格和换行,要求把其中的大写换成小写,小写换成大写,然后输出互换后的字符串。

1362
来自专栏九彩拼盘的叨叨叨

JS模式 之通用模式(译)

原文 http://shichuan.github.io/javascript-patterns/

1093
来自专栏C/C++基础

C++模板之隐式实例化、显示实例化、隐式调用、显示调用和模板特化详解

模板的实例化指函数模板(类模板)生成模板函数(模板类)的过程。对于函数模板而言,模板实例化之后,会生成一个真正的函数。而类模板经过实例化之后,只是完成了类的定义...

1882
来自专栏史上最简单的Spring Cloud教程

Java 代理模式

什么是代理 代理是一种设计模式,它的核心思想,是将对目标的访问转移到代理对象上。这样做的好处就是,目标对象在不改变代码的情况下,可以通过代理对象加一些额外的功能...

2198
来自专栏风中追风

try,finally中都有return时程序的执行顺序

 在Java中当try、finally语句中包含return语句时,执行情况到底是怎样的,finally中的代码是否执行,大家各有各的说法,刚好今天有个朋友问了...

37615
来自专栏Python专栏

17个案例带你3分钟搞定Linux正则表达式

来源:https://blog.ansheng.me/article/examples-of-linux-regular-expressions

1813
来自专栏从零开始学 Web 前端

*(int*)&p

分析: void(p)(); 这行代码定义了一个指针变量p,p指向一个函数。这个函数的参数和返回值都为void。 &p是求指针变量p本身的地址。 ...

5532

扫码关注云+社区

领取腾讯云代金券