C++string类整理

string类

string类

头文件:#include<string>

名称空间:using namespace std;

初始化:

string Str;

String类的构造函数和析构函数如下:

  1.     string s(str) //拷贝构造函数 生成str的复制品
  2.    string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值
  3.     string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
  4.     string s(cstr) //将C字符串作为s的初值
  5.     string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。
  6.     string s(num,c) //生成一个字符串,包含num个c字符
  7.     string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值

string类操作

  1.  swap()   //交换两个字符串的内容
  2. +=,append(),push_back() //在尾部添加字符
  3.  insert() //插入字符
  4. erase() //删除字符
  5. replace() //替换字符
  6.  empty()  //判断字符串是否为空
  7. [ ], at() //存取单一字符
  8. >>,getline() //从stream读取某值
  9. copy() //将某值赋值为一个C_string
  10. c_str() //将内容以C_string返回
  11. data() //将内容以字符数组形式返回
  12. substr() //返回某个子字符串

 

string类与字符串数组的转换

 

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

string类型转换为字符数组

#include<cstdlib>

#include<iostream>

#include<cstdio>

#include<string>

#include<cstring>

using namespace std;

int main()

{

       string s("123456.1");

       char arr[10];

       cout<<s.data()<<endl;//1.返回不带'\0' 的字符数组 123456.1

       cout<<s.c_str()<<endl;//2.返回带 '\0'的字符数组 123456.1

       s.copy(arr, 8);//3.回不带'\0' 的字符数组

       arr[8] = '\0';//不带 '\0' 输出堆栈中的垃圾

       cout<<arr<<endl;//123456.1

       //转数字

       printf("%f\n",atof(s.data())); //123456.100000

       printf("%f\n",atof(s.c_str()));//同上

       printf("%f\n",atof(arr));//同上

      

       cout<<strlen(arr)<<endl;//8

       cout<<strlen(s.data())<<endl;//同上

       cout<<strlen(s.c_str())<<endl;//同上

       return 0;

}

 

字符数组转化成string类型

char ch [] = "ABCDEFG";
string str(ch);//也可string str = ch;
或者
char ch [] = "ABCDEFG";
string str;
str = ch;//在原有基础上添加可以用str += ch;

提取子串:

substr(),形式如下:

s.substr();//返回s的全部内容

s.substr(11);//从索引11往后的子串

s.substr(5,6);//从索引5开始6个字符

把两个字符串结合起来的函数是+。

posted @ 2018-04-08 21:22  朤尧  阅读(461)  评论(0编辑  收藏  举报