[基础]C++:string和vector(1)
内置数组是一种更基础的类型,string和vector都是对它的某种抽象。
- string表示可变长的字符序列。
- vector表示存放给定类型的可变长度。
命名空间的using声明【[基础]C++:string和vector(1)】形式如:using namespace::name;
定义和初始化string对象
文章图片
初始化操作
#include
using std::string;
int main()
{
string s1;
//默认初始化
string s2(s1);
//s2是s1的副本(直接初始化)
string s3("value");
//将value字面值除了空字符外都给了s3
string s3 = "value";
//和上面的一样(用了等于号,是拷贝初始化)
string s4(10, 'c');
//内容为10个C(直接初始化)
system("pause");
//
return 0;
}
string对象上的操作
string的操作 | |
---|---|
os< | 将s写入输出流os种,返回os |
is>>s | 读取字符串赋给s,以空白分割 |
getline(is,s) | 从is中读取一行赋给s,返回is |
s.empty() | s为空时返回true,否则返回false |
s.size() | 返回s中字符的个数 |
s[n] | 返回s中第n个字符的引用,n从0开始 |
s1+s2 | 返回s1和s2连接后的结果 |
s1==s2 | 是否相等 |
s1!=s2 | 等性判断对字母大小写敏感 |
<, <=, >, >= | 利用字符在字典中的顺序进行比较,且对字母的大小写敏感 |
读写string
- 会自动忽略开头空白(空格,换行,制表符)
#include
#include
using namespace std;
int main()
{
string s;
cin >> s;
cout << s << endl;
system("pause");
return 0;
}
写入未知个数操作
- cin会将空格断开
#include
#include
using namespace std;
int main()
{
string s;
while (cin >> s)
cout << s << endl;
system("pause");
return 0;
}
使用getline读取一整行
- 在读入的字符串中保留空格,直到遇到换行符为止
#include
#include
using namespace std;
int main()
{
string s;
while (getline(cin,s)) //可以读入空格
cout << s << endl;
system("pause");
return 0;
}
string的比较
- (1)比较时长度不同,但是短的和长的对应位置相同,短的小于长的。
- (2)比较时对应位置不一样,对应位置的字符比较大小。
#include
#include
using namespace std;
int main()
{
string s1 = "hello";
string s2 = "hello ss";
string s3 = "hi";
system("pause");
return 0;
}
- s3 > s2 > s1
string的相加
- 字面值不能相加
- 必须有string对象的参与
#include
#include
using namespace std;
int main()
{
string s1 = "hello"+",";
//错误,没有包含string
string s2 = "hello ss"+s1;
//正确
string s3 = "hi"+s2+"<";
//正确
string s4 = "hello" + ","+s1;
//前两个没有包含string
system("pause");
return 0;
}
参考:C++primer 第五版
推荐阅读
- opencv|opencv C++模板匹配的简单实现
- Python基础|Python基础 - 练习1
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- Java|Java基础——数组
- Java基础-高级特性-枚举实现状态机
- 营养基础学20180331(课间随笔)??
- iOS面试题--基础
- HTML基础--基本概念--跟着李南江学编程
- typeScript入门基础介绍
- c++基础概念笔记