`
Conviction
  • 浏览: 5893 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

标准库string类型

 
阅读更多

string类型支持长度可变的字符串

#include <string>

using std::string;

 

1.string对象的定义和初始化

(1)string s1;                           默认构造函数,s1为空串

(2)string s2(s1);                     将s2初始化为s1的一个副本

(3)string s3("value");              将s3初始化为一个字符串字面值副本

(4)string s4(n,'c');                   将s4初始化为字符'c'的n个副本

注意:字符串字面值和标准库string类型不是同一种类型

 

2.string对象的读写

#include <iostream>
#include <string>
using std::string;
using std::cin;
int main()
{
	string s;
	cin>>s;
	std::cout<<s;
	return 0;
}

 cin>>s:读取并忽略开头所有的空白字符、读取字符直到再次遇到空白字符,读取终止。

 

3.读入未知数目的string对象

string world;
while(cin>>world)
{
	cout<<world<<endl;
}

4.用getline读取整行文本

string world;
while(getline(cin,world))
{
	cout<<world<<endl;
}

 5.string对象的操作之size和empty操作

string st("Hello World\n");
cout<<"The size of "<<st<<"is "<<st.size()
	<<" character, including the newline"<<endl;

 了解st是否为空,一种方法是将size与0进行比较if(st.size() == 0)...。

可以直接换成:

if(st.empty()){//...}

 注意:st.size()返回值是string::size_type类型,任何存储string的size操作结果的变量必须为string::size_type类型。特别的重要,不要把size的返回值赋给一个int变量。因为这是最安全的方法。

 

6.string的关系操作符==、!=、<、<=、>、>=

注意:string对象的比较操作时区分大小写的,即同一个字符的大小写形式被认为是两个不同的字符。在大多数计算机上,大写的字母位于小写的字母之前:任何一个大写字母都小于任意的小写字母

 

7.string对象的相加

string对象的相加被定义为连接。

string st1("Hello");
string st2("World\n");
string st3 = st1 + st2;
cout<<st3<<endl;

8.string对象和字符串字面值的连接

注意:当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的

string s1("hello");
string s2("world");
string s3 = s1 + "," + s2 + "\n";
cout<<s3<<endl;
string ss1 = "hello";
string ss2 = "world";
string ss3 = s1+",";
string ss4 = "hello" + ",";//错误
string ss5 = s1 + "," + "world";
string ss6 = "hello" + "," + s2;//错误

 9.从string对象获取字符

string类型通过下标操作符([])来访问string对象中的单个字符。下标操作符需要取一个size_type类型的值,来标明要访问的字符的位置,这个下标通常被称为“下标”或“索引(index)”

注意:string对象的下标从0开始,如果s是一个string对象且s不为空,则s[0]就是字符串的第一个字符,s[s.size()-1]则表示s的最后一个字符

string s("some string");
cout<<s.size()<<endl;
for(string::size_type ix = 0; ix!=s.size();++ix)
	cout<<s[ix]<<endl;

 

 10.下标错做可用作左值

string s("some string");
cout<<s.size()<<endl;
for(string::size_type ix = 0; ix!=s.size();++ix)
	s[ix]='*';

 11.下标值

任何可以产生整型值的表达式都可以用作下标操作符的索引。

虽然任何整型值都可作为索引,但索引的实际数据类型却是unsigned类型string::size_type。

string s("some string");
cout<<s.size()<<endl;
for(string::size_type ix = 0; ix!=s.size();++ix)
	s[ix]='*';
int a=1;
int b=2;
s[a+b] = '%';
cout<<s<<endl;

 注意:string对象的索引变量最好也用string::size_type类型

 

 

分享到:
评论

相关推荐

    C++标准库string类型[参考].pdf

    C++标准库string类型[参考].pdf

    opengl读取stl文件

    STL是三维模型常用的文件格式。...再用标准库string类型中的getline逐行读取绑定的STL文件;最后, 应用 OpenGL 中绘制三角面片编程技术实现对 STL 文件格式的直观显示。通过试验验证了读取和显 示效果。

    C++Primer视频(初级)下载地址

    第3章标准库string类型(3) 23.第3章标准库vector类型 24.第3章重点习题解答 25.第3章迭代器简介 26.二进制和十六进制 27.第3章标准库bitset类型 28.标准库bitset应用实例 29.第4章数组 30.第4章指针...

    C++Primer中文版(第4版).part4

     3.2 标准库string类型  3.3 标准库vector类型  3.4 迭代器简介  3.5 标准库bitset类型  小结  术语  第4章 数组和指针  4.1 数组  4.2 指针的引入  4.3 C风格字符串  4.4 多维数组  小结  ...

    非常经典的c++ primer视频教程6-10

    3.2 标准库string类型 3.2.1 string对象的定义和初始化 3.2.2 String对象的读写 3.2.3 string对象的操作 3.2.4 string对象中字符的处理 3.3 标准库vector类型 3.3.1 vector对象的定义和初始化 3.3.2 vector...

    C++ primer 第4版 原书+习题解答+源码 清晰pdf

     3.2 标准库string类型  3.3 标准库vector类型  3.4 迭代器简介  3.5 标准库bitset类型  小结  术语  第4章 数组和指针  4.1 数组  4.2 指针的引入  4.3 C风格字符串  4.4 多维数组  小结 ...

    C++ Primer第四版【中文高清扫描版】.pdf

    3.2 标准库string类型 70 3.2.1 string对象的定义和初始化 70 3.2.2 String对象的读写 71 3.2.3 string对象的操作 72 3.2.4 string对象中字符的处理 76 3.3 标准库vector类型 78 3.3.1 vector对象的定义和初始化 79 ...

    C 标准库 – string.h

    C 标准库 – 简介 string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。 库变量 下面是头文件 string.h 中定义的变量类型: 序号 变量 & 描述 1 size_t 这是无符号整数类型,它是 sizeof ...

    C++面向对象程序设计电子课件第二章

    C++ 面向对象程序设计 电子课件 第二章 使用标准库string类型

    C++ Primer笔记

    基本语法 ...标准库string类型 标准库vector类型 数组和指针 异常机制 函数 标准IO库 容器和算法 关联容器 泛型算法 类和数据抽象 复制控制 重载操作符与转换 面向对象编程 模版与泛型编程

    C++中的string类

    首先,为了在我们的程序中使用string类型,我们必须包含头文件 &lt;string&gt;。如下: #include &lt;string&gt; //注意这里不是string.h string.h是C字符串头文件 1.声明一个C++字符串 声明一个字符串变量很简单:

    STL库string类的模拟实现

    3. string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信 息,请参阅basic_string)。 4. string类是basic_string模板类的一个实例,它使用char来实例化basic_string模板类...

    C语言string类的实现

    C语言 string类的实现。配有C标准库函数原型

    string 类及所有的方法(c++)

    string类 之所以抛弃char*的字符串而选用C++标准程序库中的...首先,为了在我们的程序中使用string类型,我们必须包含头文件 &lt;string&gt;。如下: #include &lt;string&gt; //注意这里不是string.h string.h是C字符串头文件

    计算机语言python标准库

    python 标准库 字符串 string 常见操作 string.ascii_letters 获取26个大小写字母 string.ascii_lowercase 小写字母 string.ascii_uppercase 大写字母 string.digits ...

    String.h文件

    标准库 - &lt;string.h&gt; 简介 string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。

    .ini文件解析器(C++ 标准库实现)

    纯C++标准库实现,仅用到了&lt;fstream&gt;&lt;map&gt;&lt;list&gt;&lt;string&gt;,这些标准库,没有在Linux下测试过。(简易实现,代码部分仅6K,全采用string类型) /* .ini 文件 解析器【只能读取】 Section和Key只能为字母、数字、...

    String.pdf

    string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串... C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。

    C++利用stringstream进行数据类型转换实例

    在C++标准库里面,使用stringstream 可以用于各种数据类型之间的转换 例如string 转 int 代码如下:std::string strId = “1”;  int id = 0;  std::stringstream ss;  ss &lt;&lt; strId&gt;&gt; id; 希望本文所述对大家...

    用标准c++实现string与各种类型之间的转换

    这个类在头文件中定义, 库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。 简单起见,我主要以stringstream为...

Global site tag (gtag.js) - Google Analytics