C++程序设计入门(上) string类的基本用法
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类的基本用法的更多相关文章
- String类 的基本用法
1.String 对象的创建 String对象的创建有两种方式. 第1 种方式就是我们最常见的创建字符串的方式: String str1 = "Hello, 慕课网"; 第 2 种 ...
- 关于Java的对象、数组、String类的具体用法
对象的行为: 1.内存分配(栈和堆的区别) 栈:保存局部变量的值(用来保存基本数据类型的值:保存类的实例的引用) 对:用来存放动态产生的数据,比如new出来的对象 2.调用方法 方法返回一个值.方法不 ...
- 网易云课堂_C++程序设计入门(上)_第5单元:万类霜天竞自由 – 对象和类的更多内容_第5单元作业【4】 - 在线编程(难度:难)
第5单元作业[4] - 在线编程(难度:难) 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系 ...
- 网易云课堂_C++程序设计入门(上)_第4单元:物以类聚 – 对象和类_第4单元作业【3】- 在线编程(难度:难)
1 在本单元作业[1]和作业[2]的基础上,创建一个MyRectangle类,并在main函数中创建类的实例.(10分) 题目难度: 难 题目内容: Screen类: 与作业[2]要求完全相同. 如果 ...
- C++程序设计入门(上) 之对象和类
面向对象编程: 如何定义对象? 同类型对象用一 个通用的类来定义 class C { int p; int f(); }; C ca, cb; 一个类用变量来定义数据域,用函数定义行为. class ...
- 网易云课堂_C++程序设计入门(上)_第6单元:丹枫虽老犹多态–继承与多态_第6单元作业【2】- 在线编程(难度:中)
第6单元作业[2]- 在线编程(难度:中) 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...
- 网易云课堂_C++程序设计入门(上)_第1单元:C++概览_第1单元作业 - 写代码 - 互评 (难度:易)
第1单元作业 - 写代码 - 互评 (难度:易) 查看帮助 返回 提交作业(截止时间已过) 完成并提交作业 作业批改 互评训练 互评作业 自评作业 成绩公布 查看成绩 温 ...
- 网易云课堂_C++程序设计入门(上)_第2单元:丹青画松石– EGE图形库
第2节:一个简单的EGE程序 #ifndef _GRAPHICS_H_ #define _GRAPHICS_H_ #ifndef __cplusplus #error You must use C++ ...
- 网易云课堂_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,则 ...
随机推荐
- C++学习笔记(9)----关于变量和数组大小的一道容易出错的面试题
一道容易出错的C++笔试题 求下面代码的输出内容: int main(int argc,char* argv[]) { char str1[]="Hello"; char* str ...
- 文件路径太长无法删除 robocopy
方法一:新建空文件夹 D:\temp robocopy D:\temp D:\target\source\test /purge 或者在同一目录下,建一个空文件夹, test 在cmd下切换进入到当 ...
- ASP.NET MVC学习笔记 第三天
布局: 如果不使用布局页,需要将Layout属性设置为null. @{ Layout = null; } 使用默认布局页: 使用Add View对话框,选择使用布局页(是布局页的名称文本框为空 ...
- 【转】OmniGraffle (一)从工具栏开始
原文链接:http://www.jianshu.com/p/52f3ecbe8f2d OmniGraffle的软件布局和大多数图形类软件类似,中间是编辑区,左边是页面和对象组织的管理,右边是参数设置和 ...
- Django基础之Model操作
一.数据库操作 1.创建model表 基本结构: #coding:Utf8 from django.db import models class userinfo(models.Model): #如果 ...
- Linux案例01:eth0网卡异常
一.现象描述 今天在调试两台物理机,做完配置重启主机后,发现一台服务器网络无法ssh连接,通过ILO进去ifconfig发现eth0配置的IP地址等信息丢失,手动重启后,可以ssh连接,但过一段时间, ...
- 使用TFHpple解析html
使用TFHpple解析html https://github.com/topfunky/hpple 前期准备工作 引入静态库文件 添加库文件的 header search paths(注意,必须选中 ...
- 中文乱码(Python、WEB、ajax)
http://my.oschina.net/leejun2005/blog/74430 #查看errorb是unicode,还是stringprint isinstance(errorb,unicod ...
- matlab 波纹扭曲
% 波纹扭曲 img=imread('pic.jpg'); img=im2double(img); [h,w,c]=size(img); ratio=600/(h+w); img=imresize(i ...
- 超强windows10稳定Nginx绿色环境,可无限自定义PHP和mysql版本、同时运行N个版本
转载自互联网, 小编发现最近PHPWAMP集成环境的作者Lccee,又更新了phpwamp8.8.8.8n版本 phpwamp8.8.8.8n一共集成了12个PHP版本和3个mysql版本,并且可以高 ...