C++的string声明实战

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/89761350

一 string的构造函数说明

string s;                     //生成一个空字符串s
string s(str)                 //拷贝构造函数 生成str的复制品
string s(str, stridx)         //将字符串str内"始于位置stridx"的部分当作字符串的初值
string s(str, stridx, strlen) //将字符串str内"始于stridx且长度顶多strlen"的部分作为字符串的初值
e) string s(cstr)             //将cstr字符串作为s的初值
f) string s(chars, chars_len) //将C字符串前chars_len个字符作为字符串s的初值。
g) string s(num, c)           //生成一个字符串,包含num个c字符
h) string s(beg, end)         //以区间beg;end(不包含end)内的字符作为字符串s的初值

二 关于字符串各个头文件的说明

1 <string.h>

<string.h>是C版本的头文件,包含比如strcpy、strcat之类的字符串处理函数。

2 <cstring>

在C++标准化(1998年)过程中,为了兼容以前,标准化组织将所有这些文件都进行了新的定义,加入到了标准库中,加入后的文件名就新增了一个"c"前缀并且去掉了.h的后缀名,所以string.h头文件成了cstring头文件。但是其实现却是相同的或是兼容以前的,这就是<cstring>的来源,不要觉得又多了一个东西。相当于标准库组织给它盖了个章,说“你也是我的标准程序库的一份子了”。

3 <string>

<string>是C++标准定义的头文件,它定义了一个string的字符串类,里面包含了string类的各种操作,如s.size(), s.erase(), s.insert()等。但<string>又包含了老的C版本的字符串操作如strcpy、strcat等,这就相当于,在<string>的文件中除了定义自己的string类之外,还加了一个#include<string.h>一句包含了C版本的字符串操作。

三 string声明实战

1 代码

#include<iostream>
#include<string>
using namespace std;
int main(){
    string str1="Spend all your time waiting.";
    string str2="For that second chance.";
    string str3(str1,6);        //"all your time waiting."
    string str4(str1,6,3);      //"all"
    char ch_music[]={"Sarah McLachlan"};
    string str5=ch_music;
    string str6(ch_music);
    string str7(ch_music,5);    //"Sarah"
    string str8(4,'a');//aaaa
    string str9(ch_music+6,ch_music+14);    //" McLachlan"
    cout<<"str1:"<<str1<<endl;
    cout<<"str2:"<<str2<<endl;
    cout<<"str3:"<<str3<<endl;
    cout<<"str4:"<<str4<<endl;
    cout<<"str5:"<<str5<<endl;
    cout<<"str6:"<<str6<<endl;
    cout<<"str7:"<<str7<<endl;
    cout<<"str8:"<<str8<<endl;
    cout<<"str9:"<<str9<<endl;
    return 0;
}

2 运行

[root@localhost charpter03]# g++ 0302.cpp -o 0302
[root@localhost charpter03]# ./0302
str1:Spend all your time waiting.
str2:For that second chance.
str3:all your time waiting.
str4:all
str5:Sarah McLachlan
str6:Sarah McLachlan
str7:Sarah
str8:aaaa
str9:McLachla

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/89761350
今日推荐