C++ PRIMER 学习笔记(二)

来源:互联网 发布:下载excel办公软件 编辑:程序博客网 时间:2024/06/10 13:48

第三章标准库

Using的声明

这一章之简单的介绍了stringvector, bitset

那先熟练一下:

1.Using

   Using namespace_name::function

  例子, using  std::cin;

   使用某个空间,using namespace  namespace_name

2.String

 初始化,string a

         String a(“shalk”); 

          String a = “shalk”;

         String a(10,’a’); 连续10a

 读写, cin cout 就行

        Getlinecina

对象操作, empty() size() 

            允许拼接S3=s1+s2  允许直接串比较用 >  <  ==  !=

            支持下标操作, string a=shalk” a[0]  即为s

Size() 返回类型  string::size_type

书中建议用这个类型,对每一项操作,避免溢出。

以下是自己查的:

 赋值 const string& assignconst char* s, int n

        多个重载

  或者  const string& assignconst string& s, int start,int n

             一般都为 char*s

     Char*s int n

String & s

String &s,int start int n

int n,Char a 

    有多个重载形式。

连接  append 

比较 compare 函数

int compare(const string &s) const;               //比较当前字符串和s的大小 //比较当前字符串从pos开始的n个字符组成的字符串与s的大小 iint compare(int pos, int n,const string &s)const;  //比较当前串从pos开始的n个字符组成的字符串与s中pos2开始的n2个字符组成的字符串的大小 int compare(int pos, int n,const string &s,int pos2,int n2)const;  int compare(const char *s) const; int compare(int pos, int n,const char *s) const; int compare(int pos, int n,const char *s, int pos2) const;

compare函数在>时返回1<时返回-1==时返回0  

 有点多,大概记住一两个就行。

子串:

string  substr(int pos ,int n)

交换:

void swap(string &s)

 查找  find

 从pos开始查找s在当前串中的位置,成功时返回所在位置,失败返回string::npos的值
iterator& find(char s, int pos=0) const;
iterator& find(char *s, int pos=0) const;
iterator& find(char *s, int pos,int n) const;
iterator& find(string &s,int pos=0) const;
其他类似rfindfind_first_of(char *s,int pos )//从pos开始查找第一个s字符集的某字符出现在串中的位置,成功时返回所在位置find_last_offind_first_not_offind_last_not_of


 替换

 string &replace(int p0, int n0,const char *s);//删除从p0开始的n0个字符,然后在p0处插入s string &replace(iterator first0, iterator last0,int n, char c)

 (略)

 插入

       //插入在pos 位置之前,即占据原本的pos位置

在p0位置插入字符串s中pos开始的前n个字符 
string &insert(int p0, const char *s); 
string &insert(int p0, const char *s, int n); 
string &insert(int p0,const string &s); 
string &insert(int p0,const string &s, int pos, int n); 
string &insert(int p0, int n, char c);   //此函数在p0处插入n个字符c 
iterator insert(iterator it, char c);    //在it处插入字符c,返回插入后迭代器的位置

 删除

iterator erase(iterator first, iterator last);  
iterator erase(iterator it);              //删除it指向的字符,返回删除后迭代器的位置 
string &erase(int pos = 0, int n = npos); //删除pos开始的n个字符,返回修改后的字符串

 其他

C++提供的由C++字符串得到对应的C_string的方法是使用data()c_str()copy(),其中,data()以字符数组的形式返回字符串内容,但并不添加’\0’c_str()返回一个以‘\0’结尾的字符数组,而copy()则把字符串的内容复制或写入既有的 c_string或字符数组内。

 原型如下:

const char *data()const;                     //返回一个非null终止的c字符数组 const char *c_str()const;                    //返回一个以null终止的c字符串 int copy(char *s, int n, int pos = 0) const; //把当前串中以pos开头 n个字符copy到s中


一般string中重载形式多种多样,replace的就有8中以上,记得个大概就行吧,常用的几个其他的查书。

 最后多做几个串操作的练习,复习一下。


原创粉丝点击