String类的总结

  

1.初始化

string s0;
string s1("hello");
string s2(5,
‘a‘); //s2 = aaaaa;
string
s3(s1);
// s3 = hello
char str[100] = "aaaaabbbbbaaaaaaaaaaaaaaaaa";
string
s4(str,
5);
//s4 = aaaaa;
string s5(str+5, str+10);
//s5 = bbbbb;

2.find函数

string s("bbabbabba"),s1("a");
s.find(‘a‘, pos = 0);
s.find(s1, pos
= 0);
s.find("ab", pos = 0,
num);
总结:
(1)find()返回一个size_type类型的数据,可以这样去判读是否找到:
basic_string<char>::size_type
t = s.find(...);
if(t == string::npos) cout << "not find" <<
endl;
npos是string的一个静态成员变量,所以用string类名来修饰。
(2)第二个参数表示查找的起始位置,默认为0;
(3)如果是查找c类型的字符串还可以有第三个参数,表示要找这个字符串的前几个字符。
如(“absdfasdf”,5,2)表示,在原字符串的下表为5的位置开始找“ab”;
(4)具有相同语法的还有下面几个函数:
find_first_of():
找第一次满足条件的位置
find_last_of(): 找最后一个满足条件的位置
find_first_not_of():
找第一个不符合条件的位置
find_last_not_of():找最后一个不符合条件的位置
rfind(): 从后往前找

3.size_type capacity( ) const;
返回已经分配的存储空间大小。

4.length()和size()返回同样的值,都是string的大小。
length()是以前的string实现的函数。
size()是为了同STL融合,加入的函数。

5.substr(start = 0, num = npos);
返回string的一部分,有开始位置和个数,两个参数。

6.resize(num = 0, char = 0);

7.assign()函数

s.assign(cstr, num =
0);
//c_char*类型的从0开始拷贝num个进去。
s.assign(s2);
//string类型的s2
s.assign(s2, start,
num);
// string类型的s2,从第start个位置开始,拷贝num个
s.assign(num,
char);
/ / 拷贝num个char进去
s.assign(s2.begin(), s2.end()
);
//迭代器版本

8.append()函数
同上!

10.swap(s2);

11.push_back(ch);

12.insert()函数

s1.insert(pos, *ptr);
s1.insert(pos, *ptr, num);
s1.insert(pos,
s2);
s1.insert(pos, s2, start, num);
s1.insert(pos, num,
ch);
//在pos初加入num个char
s1.insert(iterator, s2.begin(),
s2.end());
s1.insert(iterator, num, ch);

13.erase()函数

erase(s.begin(), s.end());
erase(iterator);
erase(pos = 0, num =
npos); //默认全部删除

14.replace()函数

replace(pos, num, *ptr, num2 = npos);
//用*ptr的num2个元素替换原string从pos开始的num个元素
replace(pos, num, s2, num2 =
npos);
replace(pos, num, num2, ch);
//原stringpos位置处的num个由num2个ch替换
replace(iter_first, iter_last,
*ptr);
replace(iter_first, iter_last, s2);
replace(iter_first, iter_last,
num2, ch);
replace(iter_first, iter_last, iter2_first,
iter2_last,);

时间: 2024-08-04 01:32:47

String类的总结的相关文章

java String 类 基础笔记

字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String s = "abc";//存放于字符串常量池,产生1个对象 String s1=new String("abc");//堆内存中new创建了一个String对象,产生2个对象 String类中的equals比较字符串中的内容. 常用方法: 一:获取 1.获取字符串中字符的个数(长度):length();方法. 2.根据位置获取字符:charAt(int index); 3.根据字符获取在字符串中

String类实现

String类是应用框架中不可或缺的类 重载运算符实现字符串的操作 #idndef IOTECK_STRING_H_#define IOTECK_STRING_H_namespace iotek{ class String { public: String(const char*=NULL); ~String(); String(const String&); //拷贝构造函数 //String a; a=b; String& operator=(const String &);

String类

一.概述 Sting s1 = "abc";    //s1是一个类类型变量,"abc"是一个对象. String s2 = new String("abc"); //s1 . s2 的区别: 前者在内存中有一个对象,后者在内存中有两个对象. s1.equals(s2) 为true  因为 String复写了equals方法 二.常见的功能-获取和判断 获取: 1.int length(); 获取长度 2.char chatAt(int inde

C++实现String类

这是一道十分经典的面试题,可以短时间内考查学生对C++的掌握是否全面,答案要包括C++类的多数知识,保证编写的String类可以完成赋值.拷贝.定义变量等功能. #include<iostream> using namespace std; class String { public: String(const char *str=NULL); String(const String &other); ~String(void); String &operator =(cons

java中String类的构造函数

String类中的构造函数String(); 构造一个空字符串对象String(byte[] bytes); 通过byte数组构造字符串对象String(byte[] bytes,int offset,int length);通过byte数组,从offset开始,总共length长的字节构造字符串对象String(char[] value); 通过char数组构造字符串对象String(byte[] char,int offset,int length);通过char数组,从offset开始,总

Java (六、String类和StringBuffer)

Java String 类 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 创建字符串 // ==比较的是字符串在栈中存放的首地址,而equals()比较的是两个字符串的内容是否相同 //普通的声明字符串的方法,只会在字符串常量池里开辟空间,并且开辟空间之前,会检查字符串常量池里是否已存在 //相同的数据,如果有,直接指向已存在的数据,如果没有会在字符串常量池里开辟一个新的空间 String s = "ccy"

JAVA API(一)String类和StringBuffer类

1.String类和StringBuffer类 在程序中经常会用到字符串,所谓的字符串就是指一连串的字符,它是由多个单个字符连接而成的.字符串中可以包含任意字符,这些字符必须包含在一对双引号""之内,如"abc".在Java中定义了String和StringBuffer类来封装字符串,并提供了一系列操作字符串的方法,它们都位于java.lang包中,因此不需要导包就可以直接使用.下面将对String类和StringBuffer类详细讲解. 1.1String类的初始

String类replaceAll方法正则替换深入分析

作者网址: https://my.oschina.net/shipley/blog/98973 背景:      前几天有人发了一个关于下面问题的贴,对这个有点好奇,故花时间做了点研究.        对单个反斜杠字符串替换成双斜杠的Java实现如下:    String s = "\\";    方法一:String sr1 = s.replaceAll("\\\\", "\\\\\\\\");    方法二:String sr1 = s.re

java11-3 String类的获取功能

package cn_String2;/* String类的获取功能 int length():获取字符串的长度. char charAt(int index):获取指定索引位置的字符 int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引. 为什么这里是int类型,而不是char类型? 原因是:'a'和97其实都可以代表'a' int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引. int indexOf(int ch,int

C++的string类

关于头文件cstring,提供了strlen及很多与字符串相关的函数的声明. 头文件string,要使用string类,必须在程序中包含头文件string,string类位于std中,必须提供一条using编译指令,或者使用std::string来引用它. 1.string类的使用: 不能将一个数组赋给另一个数组,但可以将一个string对象赋给另一个string对象. size()是string类的一个方法.可以将C++里边的string类理解成类型,我觉的可以理解成,创建:一个新类型,就像j