T9的空间
You will never walk alone!
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
69 随笔 :: 0 文章 :: 28 评论 :: 0 Trackbacks
<
2008年9月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
公告
如果笔记中有误导路人的段落,请帮忙email给我,谢谢 shuoxie@gmail.com
随笔分类
APUE(15)
(rss)
Compile & Link(3)
(rss)
Computation Geometry(5)
(rss)
Data Structures(8)
(rss)
Graph(6)
(rss)
Java(2)
(rss)
Linux(2)
(rss)
My litter life(2)
(rss)
Number Theory(4)
(rss)
Useful information(3)
(rss)
细节(2)
(rss)
随笔档案
2016年8月 (1)
2014年7月 (1)
2013年12月 (2)
2013年10月 (3)
2013年6月 (7)
2013年5月 (8)
2012年9月 (1)
2009年6月 (3)
2009年4月 (2)
2009年2月 (1)
2009年1月 (1)
2008年12月 (2)
2008年11月 (8)
2008年10月 (6)
2008年9月 (14)
2008年8月 (9)
相册
Temp
收藏夹
ACM_algorithm(1)
(rss)
我的链接
Peking university judgeonline
Saratov State University _Online Contester
STL 中文站
Topcoder
Waterloo Programming Contests
搜索
积分与排名
积分 - 47404
排名 - 470
最新随笔
1. 算法导论读书笔记.
2. Linux memory summary
3. 高性能JNI
4. 第二章-编译和链接
5. 第一章-温故而知新
6. 程序员自我修养-读书笔记
7. LTZ看书之APUE14
8. LTZ看书之APUE13
9. LTZ看书之APUE12
10. LTZ看书之APUE11
最新评论
1. re: ACM OJ Collection
评论内容较长,点击标题查看
--professional resume writing service
Sting
1
#include
<
iostream
>
2
#include
<
string
>
3
#include
<
algorithm
>
4
using
namespace
std;
5
int
main()
6
{
7
string
str1,str2;
8
//
string类的构造函数:
9
//
string(const char *s);
//
用c字符串s初始化
10
//
string(int n,char c);
//
用n个字符c初始化
11
//
此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常
12
13
14
15
//
string的赋值:
16
//
string &operator=(const string &s);
//
把字符串s赋给当前字符串
17
//
string &assign(const char *s);
//
用c类型字符串s赋值
18
//
string &assign(const char *s,int n);
//
用c字符串s开始的n个字符赋值
19
//
string &assign(const string &s);
//
把字符串s赋给当前字符串
20
//
string &assign(int n,char c);
//
用n个字符c赋值给当前字符串
21
//
string &assign(const string &s,int start,int n);
//
把字符串s中从start开始的n个字符赋给当前字符串
22
//
string &assign(const_iterator first,const_itertor last);
//
把first和last迭代器之间的部分赋给字符串
23
24
str1.assign(
"
hell0
"
);
25
cout
<<
str1
<<
endl;
26
cin
>>
str2;
27
str1.assign(str2);
28
cout
<<
str1
<<
endl;
29
30
string
str3
=
"
word
"
;
31
str1.assign(str3,
1
,
2
);
32
cout
<<
str1
<<
endl;
33
34
str1.assign(str3.begin()
+
1
,str3.end());
35
cout
<<
str1
<<
endl;
36
//
string的特性描述:
37
//
int capacity()const;
//
返回当前容量(即string中不必增加内存即可存放的元素个数)
38
//
int max_size()const;
//
返回string对象中可存放的最大字符串的长度
39
//
int size()const;
//
返回当前字符串的大小
40
//
int length()const;
//
返回当前字符串的长度
41
//
bool empty()const;
//
当前字符串是否为空
42
//
void resize(int len,char c);
//
把字符串当前大小置为len,并用字符c填充不足的部分
43
cout
<<
str2.size ()
<<
"
"
<<
str2.length()
<<
"
"
<<
str2.capacity()
<<
endl;
44
cout
<<
str2.empty()
<<
endl;
45
cout
<<
str2.max_size()
<<
endl;
46
//
string类的输入输出操作:
47
//
string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。
48
//
函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。
49
//
实际上getline可以指定结束标志
50
getchar();
51
52
string
str4;
53
getline(cin,str4,
'
\n
'
);
54
cout
<<
"
str4:
"
<<
str4
<<
endl;
55
getchar();
56
57
getline(cin,str4,
'
a
'
);
58
cout
<<
"
getline2:
"
<<
str4
<<
endl;
59
60
//
string的连接:
61
//
string &operator+=(const string &s);
//
把字符串s连接到当前字符串的结尾
62
//
string &append(const char *s);
//
把c类型字符串s连接到当前字符串结尾
63
//
string &append(const char *s,int n);
//
把c类型字符串s的前n个字符连接到当前字符串结尾
64
//
string &append(const string &s);
//
同operator+=()
65
//
string &append(const string &s,int pos,int n);
//
把字符串s中从pos开始的n个字符连接到当前字符串的结尾
66
//
string &append(int n,char c);
//
在当前字符串结尾添加n个字符c
67
//
string &append(const_iterator first,const_iterator last);
//
把迭代器first和last之间的部分连接到当前字符串的结尾
68
69
cout
<<
"
str2:
"
<<
str2
<<
endl;
70
str2.append(str4,
0
,str4.length());
71
cout
<<
"
str2:
"
<<
str2
<<
endl;
72
str2.append(
3
,
'
!
'
);
73
cout
<<
"
str2:
"
<<
str2
<<
endl;
74
str2
+=
"
"
+
str3;
75
cout
<<
"
str2:
"
<<
str2
<<
endl;
76
77
//
string的比较:
78
//
bool operator==(const string &s1,const string &s2)const;
//
比较两个字符串是否相等
79
//
运算符">","<",">=","<=","!="均被重载用于字符串的比较;
80
//
int compare(const string &s) const;
//
比较当前字符串和s的大小
81
//
int compare(int pos, int n,const string &s)const;
//
比较当前字符串从pos开始的n个字符组成的字符串与s的大小
82
//
int compare(int pos, int n,const string &s,int pos2,int n2)const;
//
比较当前字符串从pos开始的n个字符组成的字符串与s中pos2开始的n2个字符组成的字符串的大小
83
//
int compare(const char *s) const;
84
//
int compare(int pos, int n,const char *s) const;
85
//
int compare(int pos, int n,const char *s, int pos2) const;
86
//
compare函数在>时返回1,<时返回-1,==时返回0
87
88
//
string的子串:
89
//
string substr(int pos = 0,int n = npos) const;
//
返回pos开始的n个字符组成的字符串
90
91
str4
=
str2.substr(
1
,
5
);
92
cout
<<
"
str4:
"
<<
str4
<<
endl;
93
/**/
/*
94
string类的查找函数:
95
96
int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置
97
int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
98
int find(const char *s, int pos, int n) const;//从pos开始查找字符串s中前n个字符在当前串中的位置
99
int find(const string &s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
100
//查找成功时返回所在位置,失败返回string::npos的值
101
102
int rfind(char c, int pos = npos) const;//从pos开始从后向前查找字符c在当前串中的位置
103
int rfind(const char *s, int pos = npos) const;
104
int rfind(const char *s, int pos, int n = npos) const;
105
int rfind(const string &s,int pos = npos) const;
106
//从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值
107
108
int find_first_of(char c, int pos = 0) const;//从pos开始查找字符c第一次出现的位置
109
int find_first_of(const char *s, int pos = 0) const;
110
int find_first_of(const char *s, int pos, int n) const;
111
int find_first_of(const string &s,int pos = 0) const;
112
//从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。查找失败返回string::npos
113
114
int find_first_not_of(char c, int pos = 0) const;
115
int find_first_not_of(const char *s, int pos = 0) const;
116
int find_first_not_of(const char *s, int pos,int n) const;
117
int find_first_not_of(const string &s,int pos = 0) const;
118
//从当前串中查找第一个不在串s中的字符出现的位置,失败返回string::npos
119
120
int find_last_of(char c, int pos = npos) const;
121
int find_last_of(const char *s, int pos = npos) const;
122
int find_last_of(const char *s, int pos, int n = npos) const;
123
int find_last_of(const string &s,int pos = npos) const;
124
125
int find_last_not_of(char c, int pos = npos) const;
126
int find_last_not_of(const char *s, int pos = npos) const;
127
int find_last_not_of(const char *s, int pos, int n) const;
128
int find_last_not_of(const string &s,int pos = npos) const;
129
//find_last_of和find_last_not_of与find_first_of和find_first_not_of相似,只不过是从后向前查找
130
131
132
133
string类的替换函数:
134
135
string &replace(int p0, int n0,const char *s);//删除从p0开始的n0个字符,然后在p0处插入串s
136
string &replace(int p0, int n0,const char *s, int n);//删除p0开始的n0个字符,然后在p0处插入字符串s的前n个字符
137
string &replace(int p0, int n0,const string &s);//删除从p0开始的n0个字符,然后在p0处插入串s
138
string &replace(int p0, int n0,const string &s, int pos, int n);//删除p0开始的n0个字符,然后在p0处插入串s中从pos开始的n个字符
139
string &replace(int p0, int n0,int n, char c);//删除p0开始的n0个字符,然后在p0处插入n个字符c
140
string &replace(iterator first0, iterator last0,const char *s);//把[first0,last0)之间的部分替换为字符串s
141
string &replace(iterator first0, iterator last0,const char *s, int n);//把[first0,last0)之间的部分替换为s的前n个字符
142
string &replace(iterator first0, iterator last0,const string &s);//把[first0,last0)之间的部分替换为串s
143
string &replace(iterator first0, iterator last0,int n, char c);//把[first0,last0)之间的部分替换为n个字符c
144
string &replace(iterator first0, iterator last0,const_iterator first, const_iterator last);//把[first0,last0)之间的部分替换成[first,last)之间的字符串
145
146
string类的插入函数:
147
148
string &insert(int p0, const char *s);
149
string &insert(int p0, const char *s, int n);
150
string &insert(int p0,const string &s);
151
string &insert(int p0,const string &s, int pos, int n);
152
//前4个函数在p0位置插入字符串s中pos开始的前n个字符
153
string &insert(int p0, int n, char c);//此函数在p0处插入n个字符c
154
iterator insert(iterator it, char c);//在it处插入字符c,返回插入后迭代器的位置
155
void insert(iterator it, const_iterator first, const_iterator last);//在it处插入[first,last)之间的字符
156
void insert(iterator it, int n, char c);//在it处插入n个字符c
157
158
159
string类的删除函数
160
161
iterator erase(iterator first, iterator last);//删除[first,last)之间的所有字符,返回删除后迭代器的位置
162
iterator erase(iterator it);//删除it指向的字符,返回删除后迭代器的位置
163
string &erase(int pos = 0, int n = npos);//删除pos开始的n个字符,返回修改后的字符串
164
165
166
167
string类的迭代器处理:
168
169
string类提供了向前和向后遍历的迭代器iterator,迭代器提供了访问各个字符的语法,类似于指针操作,迭代器不检查范围。
170
用string::iterator或string::const_iterator声明迭代器变量,const_iterator不允许改变迭代的内容。常用迭代器函数有:
171
const_iterator begin()const;
172
iterator begin(); //返回string的起始位置
173
const_iterator end()const;
174
iterator end(); //返回string的最后一个字符后面的位置
175
const_iterator rbegin()const;
176
iterator rbegin(); //返回string的最后一个字符的位置
177
const_iterator rend()const;
178
iterator rend(); //返回string第一个字符位置的前面
179
rbegin和rend用于从后向前的迭代访问,通过设置迭代器string::reverse_iterator,string::const_reverse_iterator实现
180
181
182
183
字符串流处理:
184
185
通过定义ostringstream和istringstream变量实现,<sstream>头文件中
186
例如:
187
string input("hello,this is a test");
188
istringstream is(input);
189
string s1,s2,s3,s4;
190
is>>s1>>s2>>s3>>s4;//s1="hello,this",s2="is",s3="a",s4="test"
191
ostringstream os;
192
os<<s1<<s2<<s3<<s4;
193
cout<<os.str();
194
*/
195
return
0
;
196
}
posted on 2008-08-19 17:16
Torres
阅读(261)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © Torres