当前位置: 首页 > 编程日记 > 正文

C++ 经常使用类 string类

===6.3.2使用string对象===


string word="I love China"
*链接字符串*
string description=adjective  + " " + word;
_Note_: 不能连接两个字符串字面量,以下的语句是错误的

string test= "I have" + "a dream";


===6.3.3訪问字符串中的字符===
*读取字符串*
getline(cin, text);
getline(cin, text, '#')_;

word[index];


===6.3.4訪问子字符串===
* substr(index0, length);
string phrase = "the higher the fewer";

string wold= phrase.substr(4,6 );


===6.3.5比較字符串===
*操作符*
> >= < !=
*compare()*
world.compare("end");

word.compare(2, 4, "end");


===6.3.6搜索字符串:find===
string sentence = "Manners maketh man";
int a= sentence.find("man");
int b= sentence.find("man", index);//从index開始搜索
假设没有找到。返回~~string:npos~~
*搜索字符集*
string separeators= " ,.\"";
sentence.find_first_of(separeators);
sentence.find_last_of(separeators);
sentence.find_last_not_of(separeators);
sentence.find_first_not_of(separeators);
*逆向搜索*

sentence.rfind("man");


===6.3.7改动字符串:insert、replace、erase===
*1.insert*
_`mystring.insert(index, anotherstring)`
sentence.insert(13, world, 8, 5);//从index=8開始之后的5个字符
把几个同样字符串插入到string对象中:sentence.insert(index,times, string);
*2.replace*
将从index開始的num个字符,替换成新的string:sentence.replace(index, num, string);
*3.erase*

删除从index開始的num个字符:sentence.erase(index, num);


===6.3.8注意事项===


1) append函数与char 和char*

append函数的原型例如以下:

string& append (const string& str);string& append (const string& str, size_t subpos, size_t sublen);string& append (const char* s);string& append (const char* s, size_t n);string& append (size_t n, char c);
注意。char* 和char用作append的參数时候。比如,想在string尾部添加一个字符,须要用mystring.append(1, ch) 而不是mystring.apend(ch). 相同。想将chars的当中一部分插入string中。须要用mystring.append(s+a, b-a)


注意,假设只想添加一个字符。使用push_back就可以

string 具体解释

1.*string constructor*

default (1) string();
copy (2) string (const string& str);
substring (3) string (const string& str, size_t pos, size_t len = npos);
from c-string (4) string (const char* s);
from buffer (5) string (const char* s, size_t n);
fill (6) string (size_t n, char c);
range (7) template <class InputIterator>
  string  (InputIterator first, InputIterator last);

// string constructor
#include <iostream>
#include <string>int main ()
{std::string s0 ("Initial string");// constructors used in the same order as described above:std::string s1;std::string s2 (s0);std::string s3 (s0, 8, 3);std::string s4 ("A character sequence", 6);std::string s5 ("Another character sequence");std::string s6 (10, 'x');std::string s7a (10, 42);      // 42 is the ASCII code for '*'std::string s7b (s0.begin(), s0.begin()+7);std::cout << "s1: " << s1 << "\ns2: " << s2 << "\ns3: " << s3;std::cout << "\ns4: " << s4 << "\ns5: " << s5 << "\ns6: " << s6;std::cout << "\ns7a: " << s7a << "\ns7b: " << s7b << '\n';return 0;
}
**output**:
s1: 
s2: Initial string
s3: str
s4: A char
s5: Another character sequence
s6: xxxxxxxxxx
s7a: **********
s7b: Initial

2.迭代器:
begin();
end();


3.capacity:
size();
length();
clear();
empty();


4.Element Access:
operator[]
at()
back();
front();

5.Modifier
operator+=
append()
push_back()
assign()
insert()
erase()
replcace();
swap();
pop_back();

6.String Operations:
copy();
find();
find_first_of();
find_last_of();
find_first_not_of();
find_last_not_of();
substr();
compare();

7.Member constants:
npos


8.Non-member function overloads:
getline();

相关文章:

Nginx源码分析--字符串处理

ngx_string.cvoid ngx_strlow(u_char *dst, u_char *src, size_t n); 将src的前n个字符转换成小写存放在dst字符串当中&#xff0c;调用者需要保证dst指向的空间大于等于n。操作不会对原字符串产生变动。如要更改原字符串&#xff0c;可以&#xff1a;ngx_str_t str ngx_strin…

信息保留的二值神经网络IR-Net,落地性能和实用性俱佳 | CVPR 2020

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;导语&#xff1a;在CVPR 2020上&#xff0c;商汤研究院链接与编译组和北京航空航天大学刘祥龙老师团队提出了一种旨在优化前后向传播中信息流的实用、高效的网络二值化新算法IR-Net。不同于以往二值神经网络大多关注量…

Jq-table最后一行添加样式

豪情姓名QQE-mail豪情249056406jikeytanggmail.comtony1234567puaggmail.comtony1234567puaggmail.comtony1234567puaggmail.comtony1234567puaggmail.com豪情啊不得了真是的运行代码

Same binary weight (位运算)

题目描述 The binary weight of a positive integer is the number of 1s in its binary representation.for example,the decmial number 1 has a binary weight of 1,and the decimal number 1717 (which is 11010110101 in binary) has a binary weight of 7.Give a positi…

Nginx源码分析--基本数据类型的别名

typedef intptr_t ngx_int_t; typedef uintptr_t ngx_uint_t; typedef intptr_t ngx_flag_t; intptr_t在 # /usr/include/stdint.h 中&#xff0c;下面是stdint.h部分代码 #ifndef _STDINT_H #define _STDINT_H 1#include <features.h> #include…

EnterpriseDB Migration 迁移工具使用测试(2)

下面我们来测试EnterpriseDB Migration 工具对于Oracle 大对象(LOB)的迁移情况&#xff1b; 首先在在Oracle实例Scott模式下创建具有LOB对象的表,如&#xff1a; SQL> create table tlob (t1 int primary key,t2 clob,t3 blob); Table created. -- 并填充数据 SQL> begin…

生物学的机器学习:使用K-Means和PCA进行基因组序列分析 COVID-19接下来如何突变?...

作者 | Andre Ye译者 | 孟翔杰来源 | DeepHub IMBA许多人没有想到&#xff0c;病毒就像地球上为生存而挣扎的其他生物一样&#xff0c;它们会进化或变异。只要看一看人类病毒来源的蝙蝠携带的病毒RNA序列片段即可。AAAATCAAAGCTTGTGTTGAAGAAGTTACAACAACTCTGGAAGAAACTAAGTT…以及…

sql server时间转换

--getdate 获取当前时间select getdate()--dateadd 原有时间加&#xff1a; 2013-02-17 13:20:16 此时间加12个月 select dateadd(MONTH,12,2013-02-17 13:20:16) --返回&#xff1a;2014-02-17 13:20:16.000 &#xff08;参数month可以改为 day&#xff0c;year等日期加相应…

cgdb安装与使用

官网&#xff1a;http://cgdb.github.io/ 安装 # wget http://cgdb.me/files/cgdb-0.6.7.tar.gz # tar -zvxf cgdb-0.6.7.tar.gz # cd cgdb-0.6.7 # ./configure --prefix/usr/local # make && make install 使用 1&#xff1a;cgdb分为上下两栏&#xff0c…

[MFC]多线程传参问题 [AfxBeginThread]

前言MFC中使用多线程比较简单&#xff0c;大家都推荐用AfxBeginThread来实现&#xff0c;但使用过程中确遇到传入this之后不能得到对象内部字段数据的问题。正文一、问题代码1.1 Test.h#pragmaonceclassCTest{public: CTest(void); ~CTest(void); voidThreadMethod…

学习Python,这22个包怎能不掌握?

作者 | Erik-Jan van Baaren译者 | 弯月&#xff0c;责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;以下为译文&#xff1a;如今全球各个行业内 Python 的使用状况怎么样呢&#xff1f;这个问题就是我写这篇文章的初衷。我找…

JSTL标签库的一些基础实例

如题所示&#xff0c;只是一些简单的入门实例&#xff0c;代码如下&#xff1a;<% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <%taglib prefix"c" uri"http://java.sun.com/jsp/jstl/core"%…

旷视提Circle Loss,统一优化视角,革新深度特征学习范式 | CVPR 2020

作者 | 旷视研究院本文是旷视 CVPR 2020的被收录论文解读第。它提出用于深度特征学习的Circle Loss&#xff0c;从相似性对优化角度正式统一了两种基本学习范式&#xff08;分类学习和样本对学习&#xff09;下的损失函数。通过进一步泛化&#xff0c;Circle Loss 获得了更灵活…

收藏好玩的网站

1.输名字出照片 http://turnyournameintoaface.com/?name2.看google页面可以做成这样http://mrdoob.com/projects/chromeexperiments/google_gravity/3. 有趣的在线人脸变动物&#xff08;川剧中有变脸&#xff0c;其实你也可以滴&#xff01;&#xff09;http://youwild.org/…

GDB 格式化结构体输出

set print address set print address on 打开地址输出&#xff0c;当程序显示函数信息时&#xff0c;GDB会显出函数的参数地址。系统默认为打开的&#xff0c; show print address 查看当前地址显示选项是否打开。 set print array set print array on 打开数组显示&#xff…

Kinect For Windows V2开发日志九:侦测并绘制人体骨架

简介 在上一篇《侦测、追踪人体骨架》里&#xff0c;介绍了关节点的使用办法&#xff0c;这一篇记录将关节点与OpenCV结合的绘图方法。 代码 #include <iostream> #include <opencv2\imgproc.hpp> #include <opencv2\calib3d.hpp> #include <opencv2\high…

拨号连接或 ××× 连接的错误代码列表

本文列出了在使用Windows 2000、Windows XP 或 Windows Server 2003 作为客户机&#xff0c;建立拨号连接或 连接时可能收到的错误代码。注意&#xff1a;只有在尝试连接到正运行Windows 2000 或更高版本的路由和远程访问服务器时&#xff0c;才会看到编号高于 900 的错误代码…

“程序员数学不行,干啥都不行!”高级开发:90%都是瞎努力!

之前有很多读者留言向我们反馈&#xff1a;数学不好做算法优化&#xff0c;每次遇到不一样的问题就不会了&#xff0c;要是赶上面试基本就凉凉了。平时很难搞懂像数据结构、算法、复杂的语句等等&#xff0c;因为这些核心原理都是数学。而且光会基础数学远远不够&#xff0c;还…

Redis源码分析--lookupKey函数查看value值

lookupKey函数查看value值 robj *lookupKey(redisDb *db, robj *key) {dictEntry *de dictFind(db->dict,key->ptr);if (de) {robj *val dictGetVal(de);/* Update the access time for the ageing algorithm.* Dont do it if we have a saving child, as this will t…

PHP获取时间排除周六、周日的两个方法

//方法一&#xff1a; <?php $now time(); //指定日期用法 $now strtotime(2014-01-08) ; $day 3600*24; $total 12;$days array() ;for ($i2;$i<$total;$i) {$timer $now$day*$i;$num date("N",$timer)-2; //周一开始if($num>-1 and $num<3){if(c…

SMS2003 SP3+SQL Server2000 SP4部署(下)

<?xml:namespace prefix o />SMS2003 SP3SQL Server2000 SP4部署(下)<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />E.SMS2003安装在berlin上放入SMS2003光盘镜像&#xff0c;选择SMS2003出现SMS2003安装向导&#xff…

redis源码分析--zslRandomLevel位运算解析

与&运算 0376的二进制就是1111 1110&#xff0c;二进制的与运算规则是&#xff0c;只有两个数同时为1时&#xff0c;则结果才为1&#xff0c;只要有一个数为0&#xff0c;则结果就为0。比如1&11; 1&00; 0&10; 0&00;因此把一个字符与二进制1111 1110进行与…

从零开始构建:使用CNN和TensorFlow进行人脸特征检测

作者 | Shubham Panchal译者 | 孟翔杰来源 | DeepHub IMBA出品 | AI科技大本营&#xff08;rgznai100&#xff09;人脸检测系统在当今世界中具有巨大的用途&#xff0c;这个系统要求安全性&#xff0c;可访问性和趣味性&#xff01;今天&#xff0c;我们将建立一个可以在脸上绘…

scope重定义

.directive(myAttr, function() {return {restrict: E,scope: {customerInfo: info},template: Name: {{customerInfo.name}} Address: {{customerInfo.address}}<br> Name: {{vojta.name}} Address: {{vojta.address}}}; }); directive中的几个属性&#xff1a; restric…

基于轮廓调整的SOTA实例分割方法,速度达32.3fps | CVPR 2020

作者 | VincentLee来源 | 晓飞的算法工程笔记介绍实例分割是许多计算机视觉任务中的重要手段&#xff0c;目前大多数的算法都采用在给定的bbox中进行pixel-wise分割的方法。受snake算法和Curve-GCN的启发&#xff0c;论文采用基于轮廓的逐步调整策略&#xff0c;提出了Deep sna…

Redis运行流程源码解析

原文作者&#xff1a;凡趣科技 pesiwang 原文地址&#xff1a;http://blog.nosqlfan.com/html/4007.html 本文分析源码基于 Redis 2.4.7 stable 版本。 概述 Redis通过定义一个 struct redisServer 类型的全局变量server 来保存服务器的相关信息&#xff08;比如&#xff1a…

2010年5月blog汇总:OpenExpressApp、其他

OpenExpressApp 信息系统开发平台OpenExpressApp &#xff0d; 框架待完善工作事项信息系统开发平台OpenExpressApp &#xff0d; 报表模块支持ReportObjectView信息系统开发平台OpenExpressApp &#xff0d; 从compositewpf到MEF信息系统开发平台OpenExpressApp &#xff0d; …

注意!Linux glibc再曝漏洞,可导致Linux软件劫持

2019独角兽企业重金招聘Python工程师标准>>> glibc是GNU发布的libc库&#xff0c;即c运行库。它是Linux系统中最底层的API&#xff0c;几乎其它运行库都会依赖于glibc。 近日&#xff0c;Google和Red Hat的安全人员发现GNU C Library (glibc)中存在严重的安全漏洞&a…

redis常用命令参考

操作Redis数据库 下面我们来简单的操作一下数据库。在实例开启的情况下&#xff1a; 1、插入数据 redis 127.0.0.1:6379> set name wwl   OK 设置一个key-value对。 2、查询数据 redis 127.0.0.1:6379> get name   "wwl" 取出key所对应的value。 3、删除键…

Script:收集UNDO诊断信息

以下脚本可以用于收集Automatic Undo Management的必要诊断信息&#xff0c;以sysdba身份运行: spool Undo_Diag.out ttitle off set pages 999 set lines 150 set verify off set termout off set trimout on set trimspool onREM REM ----------------------------------…