- 1 C风格字符串
- 1.1 字符串常量
- 1.2 字符串变量
- 2 C++风格字符串
- 2.1 头文件
- 2.2 常用构造函数
- 2.3 常用 *** 作符
- 2.4 常用成员函数
C语言使用字符数组存放并处理字符串。
存放形式
按串中字符排列次序顺序存放,末尾添加
'
作为串结束的标记。a '
b | c | "" |
---|
用一对双引号隐含括起来的字符序列,如常量。
相当于const创建字符数组,数组中的每个元素为字符char。
与指针的关系
- 在大多数表达式中,数组名表示指向数组首元素的指针常量。
- 作为隐含创建的字符数组,字符串常量具有类似的特性。
即在大多数表达式中,字符串常量表示指向字符数组首元素的指针常量。
同时,由于数组中的每个元素都是常量,字符串常量表示的是指向字符常量的指针常量。
- 由于字符常量不能修改,使用字符串常量赋值给指针时,必须赋值给指向常量的指针。
* = "abc"ptr ; 显式变量
char创建字符数组,数组中的每个元素为字符[。
4 str]='a' , {'b','c','}';char[4
] str="abc"; char []
= str"abc"; 字符串类 string
#
2 C++风格字符串
C++使用includestring存放并处理字符串。
()
2.2 常用构造函数
;//默认构造函数,建立一个长度为0的串string( const
&); string //复制构造函数,用对象rhs中的串初始化string类的对象rhsstring( const
char*) ; //用指针s所指向的串常量初始化string类的对象s#include using
举例
namespace;
int main std(
) ;//调用string();s2
{
string s1( )
string ;//调用string(const string &rhs);s1//调用string(const char *s);s3 (
"abc"
string );//使用字符串常量初始化string对象char[ ]
= str"def"; s4 ()
string ;//使用字符串变量初始化string对象strreturn0 ;
} *** 作符 示例
注释
2.3 常用 *** 作符
+ | s + t | 将串s和t连接成一个新串 |
= | s = t | 用串t更新s |
+= | s += t | 等价于s = s + t |
[] | s[i] | 访问串s中下标为i的字符 |
关系运算符 | s R t | ∈ \in|
依据字典顺序对串s和t进行比较,R #include# { ==, !=, <, <=, >, >= } |
includeusing
namespace;
int main std(
) ="abc",
{
string s1 = "def", s2 ; =+ s3;
s3 << s1 "s1: " s2<<
cout << ; << s1 "s2: " endl<<
cout << ; << s2 "s3 = s1+s2: " endl<<
cout << ; += s3 ; endl<<
s3 "s3 += s1: " s1<<
cout << ; << s3 "s1[0]: " endl<<
cout [ 0 ] s1<<;if ( endl==
) <<s1 "s1 == s2" s2<<
cout ; else if endl(
< ) <<s1 "s1 < s2" s2<<
cout ; else << endl<<
;
cout return "s1 > s2" 0 endl;
} &insert
(
2.4 常用成员函数
string unsignedint,const char p0* ) ; //将s所指字符串插入到本串位置p0前ssubstr( unsigned
string int,unsigned int pos) ; //用本串位置pos起n个字符构成新的string类对象返回 nunsignedint find
( const &)const basic_string ;str//查找并返回str在本串中第一次出现的位置 unsignedint length
( ) const;//返回本串长度(字符个数) voidswap (
& );string //将本串与str中的串交换str#include #
举例
includeusing
namespace;
int main std(
) constchar*
{
= "OvO " ;ptr = "TAT Orz";
string s1 . insert(
s14,);<< ptr"s1: "<<
cout << ; = s1 . endlsubstr
string s2 ( s18,3); <<"s2: "<<
cout << ; << s2 "first occurrence: " endl<<
cout . find ( s1)<<;ptr<< "length of s1: " endl<<
cout . length ( s1)<<;. swap endl(
s1);<<s2"s1 after swap: "<<
cout << ;return s1 0 endl;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)