string类中的函数

1. 构造

2. 追加

3. 赋值

4. 位置与清除

5. 长度与容量

6. 比较

7. 子串

8. 搜索

9. 运算符

追加字符串

string s1("Welcome");
s1.append(" to C++"); // appends " to C++" to s1
cout << s1 << endl; // s1 now becomes Welcome to C++ string s2("Welcome");
s2.append(" to C and C++", , ); // appends " C" to s2
cout << s2 << endl; // s2 now becomes Welcome C string s3("Welcome");
s3.append(" to C and C++", ); // appends " to C" to s3
cout << s3 << endl; // s3 now becomes Welcome to C string s4("Welcome");
s4.append(, 'G'); // appends "GGGG" to s4
cout << s4 << endl; // s4 now becomes WelcomeGGGG

为字符串赋值

string s1("Welcome");
s1.assign("Dallas"); // assigns "Dallas" to s1
cout << s1 << endl; // s1 now becomes Dallas string s2("Welcome");
s2.assign("Dallas, Texas", , ); // assigns "all" to s2
cout << s2 << endl; // s2 now becomes all string s3("Welcome");
s3.assign("Dallas, Texas", ); // assigns "Dallas" to s3
cout << s3 << endl; // s3 now becomes Dallas string s4("Welcome");
s4.assign(, 'G'); // assigns "GGGG" to s4
cout << s4 << endl; // s4 now becomes GGGG

at(index):  返回当前字符串中index位置的字符

clear(): 清空字符串

erase(index, n):  删除字符串从index开始的n个字符

empty(): 检测字符串是否为

string s1("Welcome");
cout << s1.at() << endl; // s1.at(3) returns c
cout << s1.erase(, ) << endl; // s1 is now Weme s1.clear(); // s1 is now empty
cout << s1.empty() << endl; // s1.empty returns 1 (means true)

比较字符串:

string s1("Welcome");
string s2("Welcomg"); cout << s1.compare(s2) << endl; // returns -2
cout << s2.compare(s1) << endl; // returns 2
cout << s1.compare("Welcome") << endl; // returns 0

获取子串:

at() 函数用于获取一个单独的字符;而substr() 函数则可以获取一个子串

string s1("Welcome");
cout << s1.substr(, ) << endl; // returns W ; 从 0 号位置开始的 1 个字符
cout << s1.substr() << endl; // returns come ; 从 3 号位置直到末尾的子串
cout << s1.substr(, ) << endl; // returns com ;从 3 号位置开始的 3 个字符

搜索字符串

string s1("Welcome to HTML"
cout << s1.find("co") << endl; // returns 3 ; 返回子串出现的第一个位置);
cout << s1.find("co", ) << endl; // returns -1 从 6 号位置开始查找子串出现的第一个位置
cout << s1.find('o') << endl; // returns 4 返回字符出现的第一个位置
cout << s1.find('o', ) << endl; // returns 9 从 6 号位置开始查找字符出现的第一个位置

插入和替换字符串

insert() : 将某个字符/字符串插入到当前字符串的某个位置

replace() 将本字串从某个位置开始的一些字符替换为其它内容

string s1("Welcome to HTML");
s1.insert(, "C++ and ");
cout << s1 << endl; // s1 becomes Welcome to C++ and HTML string s2("AA");
s2.insert(, , 'B'); // 在 1 号位置处连续插入 4 个相同字符
cout << s2 << endl; // s2 becomes to ABBBBA string s3("Welcome to HTML");
s3.replace(, , "C++"); // 从 11 号位置开始向后的 4 个字符替换掉。注意 '\0'
cout << s3 << endl; // returns Welcome to C++

C++程序设计入门(上) string类的基本用法的更多相关文章

  1. String类 的基本用法

    1.String 对象的创建 String对象的创建有两种方式. 第1 种方式就是我们最常见的创建字符串的方式: String str1 = "Hello, 慕课网"; 第 2 种 ...

  2. 关于Java的对象、数组、String类的具体用法

    对象的行为: 1.内存分配(栈和堆的区别) 栈:保存局部变量的值(用来保存基本数据类型的值:保存类的实例的引用) 对:用来存放动态产生的数据,比如new出来的对象 2.调用方法 方法返回一个值.方法不 ...

  3. 网易云课堂_C++程序设计入门(上)_第5单元:万类霜天竞自由 – 对象和类的更多内容_第5单元作业【4】 - 在线编程(难度:难)

    第5单元作业[4] - 在线编程(难度:难) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系 ...

  4. 网易云课堂_C++程序设计入门(上)_第4单元:物以类聚 – 对象和类_第4单元作业【3】- 在线编程(难度:难)

    1 在本单元作业[1]和作业[2]的基础上,创建一个MyRectangle类,并在main函数中创建类的实例.(10分) 题目难度: 难 题目内容: Screen类: 与作业[2]要求完全相同. 如果 ...

  5. C++程序设计入门(上) 之对象和类

    面向对象编程: 如何定义对象?  同类型对象用一 个通用的类来定义 class C { int p; int f(); }; C ca, cb; 一个类用变量来定义数据域,用函数定义行为. class ...

  6. 网易云课堂_C++程序设计入门(上)_第6单元:丹枫虽老犹多态–继承与多态_第6单元作业【2】- 在线编程(难度:中)

    第6单元作业[2]- 在线编程(难度:中) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...

  7. 网易云课堂_C++程序设计入门(上)_第1单元:C++概览_第1单元作业 - 写代码 - 互评 (难度:易)

    第1单元作业 - 写代码 - 互评 (难度:易) 查看帮助 返回   提交作业(截止时间已过) 完成并提交作业     作业批改 互评训练   互评作业   自评作业     成绩公布 查看成绩 温 ...

  8. 网易云课堂_C++程序设计入门(上)_第2单元:丹青画松石– EGE图形库

    第2节:一个简单的EGE程序 #ifndef _GRAPHICS_H_ #define _GRAPHICS_H_ #ifndef __cplusplus #error You must use C++ ...

  9. 网易云课堂_C++程序设计入门(上)_第3单元:更上一层楼 – 超越C的语法_第3单元作业【3】-在线编程(难度:中;10分)

    1 本题要求实现两个重载的swap函数,每个swap函数都可交换3个整数a,b,c的值.将a的值存入b,b的值存入c,c的值存入a, 并且返回三个整数中最大的数的值.例如a,b,c的值为1,2,3,则 ...

随机推荐

  1. MySQL 备份恢复(导入导出)单个 innodb表

    MySQL 备份恢复单个innodb表呢,对于这种恢复我们我们很多朋友都不怎么了解了,下面一起来看一篇关于MySQL 备份恢复单个innodb表的教程 在实际环境中,时不时需要备份恢复单个或多个表(注 ...

  2. 在C#中internal、protected internal关键字是什么意思?

    internal:就是程序集. 那么什么是程序集呢?就是“项目”也就是工程里中的csproj 比如:我有个解决方案,这个方案中有2个项目,1个是控制台程序,1个是webapi项目,那么我这个解决方案中 ...

  3. file cycle

    # Author:Alex# Date:2017.06.07# Version:3.6.0with open('james.txt') as jaf: data = jaf.readline() ja ...

  4. SQL Server ->> 高可用与灾难恢复(HADR)技术之 -- Transaction Replication(事务复制)

    复制类型: 1)事务型复制:通过复制事务日志到订阅点重做的方式,属于增量型复制: 2)合并型复制:通过触发器和元数据表追踪表数据改变,同样属于增量型复制: 3)快照型复制:通过创建数据库快照,并把快照 ...

  5. EF中使用SqlQuery执行语句

    string sql = @" SELECT B.[FId], A.[FileTypeNo], A.[FtypeName], A.[FtypeId], A.[ProcessName], A. ...

  6. c# winfrom 皮肤切换 控件 IrisSkin2.dll 使用

    在c#应用程序中使用IrisSkin2.dll美化界面 IrisSkin2.dll 下载地址:http://d.download.csdn.net/down/1694982/sgear 一.添加控件I ...

  7. [Swift] 创建一个对象

    创建一个对象 先写一个People类 // // People.swift // Class // // Created by YouXianMing on 15/3/18. // Copyright ...

  8. Python初学者第二十一天 函数(4)-内置函数

    21day 内置函数: 1.abs()绝对值函数 2.dict()创建一个字典 3.help()获取帮助信息 4.min()从一个列表中取出最小的数 5.max()从一个列表中取出最大值 6.bool ...

  9. Java实例---俄罗斯方块

    代码分析 定义格子 package com.ftl.tetris; /** * 定义格子 */ import java.awt.image.BufferedImage; public class Ce ...

  10. github发布静态页面

    github发布静态页面:https://wangc1993.github.io/2019/01/07/2/