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
STL是三维模型常用的文件格式。...再用标准库string类型中的getline逐行读取绑定的STL文件;最后, 应用 OpenGL 中绘制三角面片编程技术实现对 STL 文件格式的直观显示。通过试验验证了读取和显 示效果。
第3章标准库string类型(3) 23.第3章标准库vector类型 24.第3章重点习题解答 25.第3章迭代器简介 26.二进制和十六进制 27.第3章标准库bitset类型 28.标准库bitset应用实例 29.第4章数组 30.第4章指针...
3.2 标准库string类型 3.3 标准库vector类型 3.4 迭代器简介 3.5 标准库bitset类型 小结 术语 第4章 数组和指针 4.1 数组 4.2 指针的引入 4.3 C风格字符串 4.4 多维数组 小结 ...
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...
3.2 标准库string类型 3.3 标准库vector类型 3.4 迭代器简介 3.5 标准库bitset类型 小结 术语 第4章 数组和指针 4.1 数组 4.2 指针的引入 4.3 C风格字符串 4.4 多维数组 小结 ...
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 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。 库变量 下面是头文件 string.h 中定义的变量类型: 序号 变量 & 描述 1 size_t 这是无符号整数类型,它是 sizeof ...
C++ 面向对象程序设计 电子课件 第二章 使用标准库string类型
基本语法 ...标准库string类型 标准库vector类型 数组和指针 异常机制 函数 标准IO库 容器和算法 关联容器 泛型算法 类和数据抽象 复制控制 重载操作符与转换 面向对象编程 模版与泛型编程
首先,为了在我们的程序中使用string类型,我们必须包含头文件 <string>。如下: #include <string> //注意这里不是string.h string.h是C字符串头文件 1.声明一个C++字符串 声明一个字符串变量很简单:
3. string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信 息,请参阅basic_string)。 4. string类是basic_string模板类的一个实例,它使用char来实例化basic_string模板类...
C语言 string类的实现。配有C标准库函数原型
string类 之所以抛弃char*的字符串而选用C++标准程序库中的...首先,为了在我们的程序中使用string类型,我们必须包含头文件 <string>。如下: #include <string> //注意这里不是string.h string.h是C字符串头文件
python 标准库 字符串 string 常见操作 string.ascii_letters 获取26个大小写字母 string.ascii_lowercase 小写字母 string.ascii_uppercase 大写字母 string.digits ...
标准库 - <string.h> 简介 string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。
纯C++标准库实现,仅用到了<fstream><map><list><string>,这些标准库,没有在Linux下测试过。(简易实现,代码部分仅6K,全采用string类型) /* .ini 文件 解析器【只能读取】 Section和Key只能为字母、数字、...
string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串... C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。
在C++标准库里面,使用stringstream 可以用于各种数据类型之间的转换 例如string 转 int 代码如下:std::string strId = “1”; int id = 0; std::stringstream ss; ss << strId>> id; 希望本文所述对大家...
这个类在头文件中定义, 库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。 简单起见,我主要以stringstream为...