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. 用SumatraPdf实现PDF静默打印

    原文:https://yutuo.net/archives/24a22d50d6001564.html 之前做一系统,有一个打印PDF文件的需求,需求如下: 能指定打印机 能两面打印 最好能静默打印 ...

  2. maven(14)-nexus仓库基本用法

    登录 启动nexus3,访问http://localhost:8081/  点击右上角sign in登录,默认用户名:admin  密码:admin123,登陆后可以点击右上角的admin,修改默认密 ...

  3. 古老的CSS同高列问题

    今日在网页设计时,遇到了希望页面的几列同高需求的实现问题,搜罗了一下google,找到以下文章,感觉不错,翻译过来,同时作为学习加深印象. https://css-tricks.com/fluid-w ...

  4. Java中执行.exe文件

    public static void main(String args[]){ try { String command ="notepad"; // 笔记本 Process ch ...

  5. 自动化测试基础篇--Selenium框架设计(POM)

    一.自动化测试框架 感谢木棉花的漂泊分享,内容转自链接:http://www.cnblogs.com/fengyiru6369/p/8053035.html 1.什么是自动化测试框架 简单来说,自动化 ...

  6. 【Leetcode】【Medium】Simplify Path

    Given an absolute path for a file (Unix-style), simplify it. For example,path = "/home/", ...

  7. Asp.Net MVC Identity 2.2.1 使用技巧(二)

    之前我们看到了新生成的项目中跟identity有关的有四个文件,这些文件是基础功能,并未开启identity的全部功能.现在我们先启用角色功能. 1.在App_Start文件夹中的IdentityCo ...

  8. 深入浅出SharePoint2010——请假系统无代码篇之工作流设计

    使用SharePoint Designer 2010进行设计. 主要使用的Actions如下图所示. 关于权限,考虑到严谨的权限设计,所以所有参与人员均为Read权限. 关于请假天数的计算,请假天数的 ...

  9. codeforces 811E Vladik and Entertaining Flags(线段树+并查集)

    codeforces 811E Vladik and Entertaining Flags 题面 \(n*m(1<=n<=10, 1<=m<=1e5)\)的棋盘,每个格子有一个 ...

  10. DZ拿shell总结

    今天碰到一个dz的站,好久没拿了 ,拿下shell觉得应该总结一下 Uc_server默认密码 其实有了UC_SERVER就是有了网站的全部权限了,有了UC_SERVER你可以重置管理员密码 可以进后 ...