码迷,mamicode.com
首页 > 编程语言 > 详细

C++ Primer(第五版)学习笔记_4_标准模板库string(1)

时间:2015-07-09 14:33:32      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:c++   stl   

C++ Primer(第五版)学习笔记_4_标准模板库string(1)

1、创建string对象
创建一个空字符串,其长度为0

#include <iostream>
#include <string>


using namespace std;


int main(int argc, char* argv[])
{
    string s;
    cout << s.length() << endl;
    return 0;
}

运行结果:
0


2、给string对象赋值
赋值一般有两种方式。
(1)直接给字符串对象赋值
#include <iostream>
#include <string>


using namespace std;


int main(int argc, char* argv[])
{
    string s;
    s = "hello, C++ STL.";
    cout << s << endl;
    return 0;
}

运行结果:
hello, C++ STL.


(2)更常用的方法是,把字符指针赋值给一个字符串对象
#include <iostream>
#include <stdio.h>
#include <string>


using namespace std;


int main(int argc, char* argv[])
{
    string s1;
    char ss[5000];
    //scanf的输入速度比cin快的多
    //scanf是C语言的函数,不支持string对象
    scanf("%s", &ss);
    s1 = ss;
    cout << s1 << endl;


    string s2;
    cin >> s2;
    cout << s2 << endl;
    return 0;
}

运行结果:
scanf,string
scanf,string
cin,string
cin,string


3、从string对象尾部添加字符
在string对象的尾部添加一个字符(char),采用“+”操作符即可。
#include <iostream>
#include <stdio.h>
#include <string>


using namespace std;


int main(int argc, char* argv[])
{
    string s;
    s = s + 'a';
    s = s + 'b';
    s = s + 'c';
    cout << s << endl;
    return 0;
}

运行结果:
abc


4、从string对象尾部追加字符串
从尾部追加的方式有两种。
(1)直接采用“+”操作符
#include <iostream>
#include <stdio.h>
#include <string>


using namespace std;


int main(int argc, char* argv[])
{
    string s;
    s = s + "abc";
    s = s + "123";
    cout << s << endl;
    return 0;
}

运行结果:
abc123


(2)采用append()方法
#include <iostream>
#include <stdio.h>
#include <string>


using namespace std;


int main(int argc, char* argv[])
{
    string s;
    s.append("abc");
    s.append("123");
    cout << s << endl;
    return 0;
}

运行结果:
abc123


5、给string对象插入字符
可以使用insert()方法把一个字符插入到迭代器位置之前
#include <iostream>
#include <stdio.h>
#include <string>


using namespace std;


int main(int argc, char* argv[])
{
    string s;
    s = "123456";
    s.insert(s.begin() + 1, 'p');
    cout << s << endl;
    return 0;
}

运行结果:
1p23456


6、访问string对象的元素
#include <iostream>
#include <stdio.h>
#include <string>


using namespace std;


int main(int argc, char* argv[])
{
    string s;
    s = "abc123456";
    cout << s[0] << endl;
    cout << s[0] - 'a' << endl;
    return 0;
}

运行结果:
a
0


7、删除string对象的元素
(1)清空一个字符串,则直接给它赋空字符串即可。也可以用s.clear()方法实现。
(2)使用erase()方法删除迭代器所指的那个元素或一个区间中的所有元素。
#include <iostream>
#include <stdio.h>
#include <string>


using namespace std;


int main(int argc, char* argv[])
{
    string s;
    s = "abc123456";
    //删除第3个元素,元素位置从0开始计数
    s.erase(s.begin() + 3);
    cout << s << endl;
    //删除0~4左闭右开区间的所有元素,[0, 4)
    s.erase(s.begin(), s.begin() + 4);
    cout << s << endl;
    s = "";
    cout << s.length() << endl;
    return 0;
}

运行结果:
abc23456
3456
0


8、返回string对象的长度
采用length()方法或则size()方法都可以返回字符串的长度;采用empty()方法,可返回字符串是否为空,如果字符串为空,返回1;否则,返回0。
#include <iostream>
#include <stdio.h>
#include <string>


using namespace std;


int main(int argc, char* argv[])
{
    string s;
    s = "abc123456";
    cout << s.length() << endl;
    cout << s.size() << endl;
    s.clear();
    cout << s.empty() << endl;
    return 0;
}

运行结果:
9
9
1


9、替换string对象的字符
使用replace()方法可以很方便地替换string对象中的字符
#include <iostream>
#include <stdio.h>
#include <string>


using namespace std;


int main(int argc, char* argv[])
{
    string s;
    s = "abc123456";
    //从第3个开始,将连续的3个字符替换为"good"
    //即将"1234"替换为good
    s.replace(3, 4, "good");
    cout << s << endl;
    return 0;
}

运行结果:
abcgood56

版权声明:本文为博主原创文章,未经博主允许不得转载。

C++ Primer(第五版)学习笔记_4_标准模板库string(1)

标签:c++   stl   

原文地址:http://blog.csdn.net/keyyuanxin/article/details/46815957

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!