关闭

今日学习札记——<string>模板类(11.17)

标签: C++基础程序语言
145人阅读 评论(0) 收藏 举报
分类:
1.string 的定义:typedef basic_string<char> string; 所以,我们只要利用string关键字,就能生成一个以basic_string<char>模板类
所衍生而出的对象。
范例1:
string Str;   //如不指定初始值,则字符串为一个空字符串。
范例2:
cin>>Str;    //利用cin将字符串数据输入到Str对象中。
范例3:声明对象时,我们也可以顺便指定初始值。
string Str("LOVE");

2.basic_string类的基本成员函数----<下钻1:string基本成员函数>
(1) append()  //主字符串延长(调用者)
(2) assign()  //认领
(3) at()      //某个位置字符
(4) begin()   //返回主字符串的起始定位器
    end()     //返回主字符串的终止定位器
(5) compare() //作差比较
(6) data()    //首位置的指针
(7) empty()   //是否为空串
(8) erase()   //擦除
(9) length()  //返回长度
    size()   //容器的大小


(10) find()    //找子字符串第一个出现的位置
     rfind()   //从后往前找
(11) insert()  //插入到某个位置
(12) substr()  //返回子串
(13) swap()    //两个串互换
(14) getline() //取得用户输入的一行数据


3.string重载的运算符
(1) A+B   //将字符串A与字符串B做合并
(2) A!=B  //判断A是否不等于B
(3) A==B  //判断A是否等于B
(4) A<B   //判断A是否小于B(同样有<=,>,>=)
(5) cout<<A; //将字符串A输出到输出流
(6) cin>>A;  //将输入流输入到字符串A


----------------------<下钻1:string基本成员函数>------------------------
(1) append()  //将某字符串加到主字符串后面(调用者)
例子:
int main()
{
    string Str1("I ");
    string Str2("LOVE ");
    string Str3("JUAN");


    //1.简单连接
    Str1.append(Str2);
    cout << Str1<<"JUAN" << endl;


    //2.起始位置连接(计算机从0数数)
    string Str4("JUANLOVE");
    Str1.append(Str4,4,4);
    cout << Str1 << endl;


    //3.连接字符数组
    char cr[] = {'J','U','A','N'};
    string Str5;
    Str5.append(cr,4);
    cout<<Str5;
    return 0;
}


(2) assign()  //将字符串的内容设定给主字符串
例子:
int main()
{
    string Str1("Simon");
    string Str2("JUAN");
    string Str3;


    Str3.assign(Str2);  //主字符串认领
    Str1.assign(Str2);


    cout<<Str3<<Str1<<endl;
    return 0;
}


(3) at()      //返回某个位置的字符
例子:
int main()
{
    string Str1("Simon");
    char c = Str1.at(4);  //返回某个位置字符


    cout<<c<<endl;
    return 0;
}


(4) begin()   //返回主字符串的起始定位器
    end()     //返回主字符串的终止定位器
例子:
int main()
{
    string Str1("SimonLoveJuan");
    string Str2;
    Str2.append(Str1.begin()+5,Str1.begin()+9); //只要记住数数从0开始数


    cout<<Str2<<endl;
    return 0;
}


(5) compare() //对两个字符串做逐字比较
例子:
int main()
{
    string Str1("Simon");
    string Str2("Juan");
    int state1 = Str1.compare(Str2); //字符串作减法
    int state2 = Str2.compare(Str1);


    string Str3("Juan");
    int state3 = Str3.compare(Str2);


    cout<<state1<<" "<<state2<<endl<<state3<<endl;
    return 0;
}


(6) data()    //返回主字符串的首位置的指针
例子:
int main()
{
    string Str1("Simon");
    string Str2;


    Str2 = Str1.data();


    cout<<Str1<<endl<<Str2<<endl;
    return 0;
}


(7) empty()   //判断数据串是否为空串
例子:
int main()
{
    string Str1("Simon");
    string Str2;


    bool b1 = Str1.empty();  //返回0,非空
    bool b2 = Str2.empty();  //返回1,空


    cout<<b1<<endl<<b2<<endl;
    return 0;
}




(8) erase()  //将容器内的数据清除
例子:
int main()
{
    //1.全部清除
    string Str1("Simon");
    Str1.erase();
    cout<<Str1<<endl;


    //2.根据起始和终止位置
    string Str2("LoveSimonJuan");
    Str2.erase(Str2.begin()+4,Str2.end()-4);
    cout<<Str2<<endl;


    return 0;
}


(9) length() //返回数据串的长度
    size()   //容器的大小
例子:
int main()
{
    string Str1("Simon");
    int Length = Str1.length();
    int Size = Str1.size();
    cout <<Length<<" " <<Size<<endl;


    return 0;
}


(10) find()    //找子字符串第一个出现的位置
     rfind()   //从后往前找
例子:
int main()
{
    string Str1("Simon very love JuanJuan.");
    string Str2("Juan");


    int position1 = Str1.find(Str2,5);  //主字符串查找子字符串,从第pos个位置开始找
    int position2 = Str1.rfind(Str2);   //从后往前找
    cout <<position1<<endl<<position2<<endl;


    return 0;
}




(11) insert()  //将数据插入到某个特定的位置
例子:
int main()
{
    string Str1("Simon very love GuiJuan.");
    string Str2("Juan");


    Str1.insert(5,Str2);  //主字符串从第5个位置插入字符串2
    cout <<Str1<<endl;


    return 0;
}


(12) substr() //返回裁剪后的串指针
例子:
int main()
{
    string Str1("Simon very love JuanJuan.");
    string Str2;


    Str2 = Str1.substr(16,8);  //截取子串,起始位置pos,大小n
    cout <<Str2<<endl;
    return 0;
}


(13) swap()   //将两个串的内容互换
例子:
int main()
{
    string Str1("Simon very love JuanJuan.");
    string Str2("JuanJuan");


    Str1.swap(Str2);  //交换两个字符串
    cout <<Str1<<endl<<Str2<<endl;
    return 0;
}


(14) getline()  //取得用户输入的一行字符串
int main()
{
    string Str1;
    getline(cin,Str1);


    cout <<Str1<<endl;
    return 0;
}
---------------------------------------------------------------
(1) A+B   //将字符串A与字符串B做合并
例子:
int main()
{
    string Str1("I Love ");
    string Str2("JuanJuan");
    string Str3 = Str1+Str2;


    cout <<Str3<<endl;
    return 0;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:26613次
    • 积分:725
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:14篇
    • 译文:0篇
    • 评论:1条
    最新评论