C++语法

Posted Frances_FKYM

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++语法相关的知识,希望对你有一定的参考价值。

C++

String 类

头文件:

#include<string>

String类的定义与初始化:

#include<iostream>
#include<string>

using namespace std;

int main(){
    string s1;//变量s1只定义为初始化,编译器给默认值空字符串""
    string s2 = "C Plus Plus";//s2在定义时同时被初始化为"C Plus Plus"。与C风格字符串不同,string的结尾没有结束标志\'/0\'
    string s3 = s2;//s3定义时使用s2进行初始化
    string s4(5,\'s\');//s4被初始化为由5个\'s\'组成的字符串"sssss"
    return 0;
}

String类函数

函数名 解释
length() 计算字符串长度,返回字符串真实长度
c_str() 将C++风格string转换位C风格字符串,返回字符串指针
insert(pos,str) 在string字符串中指定的位置pos插入另一个字符串str.
erase(pos,len) 在string字符串中指定位置pos删除长度为len的子串。(len未指明则删除到末尾)
substr(pos,len) 在string字符串中提取从指定位置pos开始,长度为len的子串

String字符串的输入输出

string类重载了输入输出运算符,即在C++中可以使用输入输出流(<<, >>)进行输入输出.

访问字符串中的字符

string可以采用下标的方式进行访问,其起始下标依旧是从0开始的。

字符串的拼接

string类的拼接使用++=运算符来直接拼接字符串,不需要担心溢出问题。

使用+来拼接字符串,两侧可以都是string,也可以是一个string字符串,一个C风格字符串、string字符串和字符数组、string字符串和单独字符。

字符串查找

string类提供了如下几个与字符串查找有关的函数:

find()函数

find()函数用于在string字符串中查找子字符串出现的位置,有如下两种原型:

  1. find(str,pos)
  2. find(c,pos)

其中"str""c"表示待查找的子字符串或字符,"pos"表示开始查找的位置,若不指明,默认从第0个字符开始。

当找到子字符串,返回子字符串第一次出现在字符串中的起始下标,若没找到,则返回无穷大值(-1)。

rfind()函数

rfind()函数与find()函数类似,与之不同的是该函数从头开始进行查找,直到pos所指明的位置为止,查找到,返回子字符串第一次出现的起始下标,若没找到,返回无穷大值(-1)。

find_first_of()函数

find_first_of()用于查找子字符串和字符串共同具有的字符在字符串中首次出现的位置。

Set类

algorithm

max_element与min_element

该函数用于在数组或容器中寻找最大值或最小值,具体使用方法如下:

//数组
int position = max_element(a,a+n)-a;
int data = *max_element(a,a+n);
//容器
int position = max_element(v.begin(),v.end())-v.begin;
int data = *max_element(v.begin(),v.end());
//string
int position = max_element(s.begin(),s.end())-s.begin();
char data = *max_element(s.begin(),s.end());

若使用该函数检查的数组或容器有多个最值,该函数只返回第一次出现的位置。

以上是关于C++语法的主要内容,如果未能解决你的问题,请参考以下文章

这些 C++ 代码片段有啥作用?

有趣的 C++ 代码片段,有啥解释吗? [复制]

以下代码片段 C++ 的说明

C++ 代码片段执行

此 Canon SDK C++ 代码片段的等效 C# 代码是啥?

C++ 代码片段(积累)