===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();

C++ 经常使用类 string类的更多相关文章

  1. C#部分---arraylist集合、arraylist集合中的object数据转换成int类string类等;间隔时间的表示方法;

    ArrayList和Array的区别: 相同点:1.两者都实现了IList.ICollection.IEnumerable接口:       2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值 ...

  2. Java 常用类String类、StringBuffer类

    常用类 String类.StringBuffer类 String代表不可变的字符序列 "xxxxxxx"为该类的对象 举例(1) public class Test { publi ...

  3. C# - 系统类 - String类

    String类 ns:System String类封装了一系列不能被改变的Unicode字符序列 字符属于引用类型 但它又具有值类型的行为 固定不变意味着 一旦在托管堆中分配了一块内存来存储字符 字符 ...

  4. java常用类-String类

    * 字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. * 通过查看API,我们可以知道 * A:字符串字面值"abc"也可以看成是一个字符串对象. * B:字符串是 ...

  5. java 中的Number类 Character类 String类 StringBuffer类 StringBuilder类

    1. Number类 Java语言为每一个内置数据类型提供了对应的包装类.所有的包装类(Integer.Long.Byte.Double.Float.Short)都是抽象类Number的子类.这种由编 ...

  6. 字符串类String类的判断功能

    StringDemo.java /* * Object:是类层级结构中的根类,所有的类都直接或间接的继承自该类. * 如果一个方法的形式参数是Object,那么这里我们就可以传递它的任意的子类对象. ...

  7. [常用类]String 类

    String 字符串是常量,一旦被赋值,就不能被更改. String str = “abc”: // "abc" 可以堪称是一个字符串对象 str = “def“: // 当把 & ...

  8. JAVA集合类简要笔记 - 内部类 包装类 Object类 String类 BigDecimal类 system类

    常用类 内部类 成员内部类.静态内部类.局部内部类.匿名内部类 概念:在一个类的内部再定义一个完整的类 特点: 编译之后可生成独立的字节码文件 内部类可直接访问外部类私有成员,而不破坏封装 可为外部类 ...

  9. 常用类.String类

    package 常用类.String;import java.util.Arrays;import java.util.Locale;public class demo01 { public stat ...

  10. java11-1 最常见的类 String类

    字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. 通过查看API,可以知道 A:字符串字面值"abc"也可以看成是一个字符串对象. B:字符串是常量,一旦被赋值,就 ...

随机推荐

  1. poj3308

    二分图的最小点权覆盖,选定点集,与该点集有关的边覆盖所有顶点,且该点集的点权值和最小. 有类似于匈牙利算法一样的带权匹配算法,但是这里就不介绍了.个人比较推荐,用最大流算法更好理解,写起来更容易. 题 ...

  2. 堆分配与栈分配---SAP C++电面(5)/FEI

    一直以来总是对这个问题的认识比较朦胧,我相信很多朋友也是这样的,总是听到内存一会在栈上分配,一会又在堆上分配,那么它们之间到底是怎么的区别呢?为了说明这个问题,我们先来看一下内存内部的组织情况. 从上 ...

  3. Cglib学习站点(转)

    1.CGlib简单介绍,访问地址:http://www.blogjava.net/stone2083/archive/2008/03/16 /186615.html,从简单的示例到不同业务场景的变化, ...

  4. html回车事件

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  5. Ubuntu14.04 64bit安装Android-Studio

    用PPA安装Android-Studio炒鸡简单,墙内亲测可用,就是速度慢了点.(睡觉时开着电脑装-) 安装Android-Studio 打开Terminal,执行: sudo add-apt-rep ...

  6. 对discuz的代码分析学习(一)目录结构

    主目录 DISCUZ用的是自己的框架,和其他框架应用一样属于单入口应用.主目录下的.php文件,大部分是应用的入口文件. home.php:家园入口,即论坛中类似博客的那个东西.index.php:首 ...

  7. IBM HeapAnalyzer

    https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W3b463571efc8_4f02_99af_3cbc0 ...

  8. Linux搭建FTP

    Linux FTP 服务器配置简单说明 转载:http://blog.csdn.net/tianlesoftware/article/details/6151317

  9. CF#52 C Circular RMQ (线段树区间更新)

    Description You are given circular array a0, a1, ..., an - 1. There are two types of operations with ...

  10. ios蓝牙开发(一)蓝牙相关基础知识

    蓝牙常见名称和缩写 MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备 BLE ==== buletouch low energy,蓝牙4.0 ...