[基础]C++:string和vector(1)

内置数组是一种更基础的类型,string和vector都是对它的某种抽象。
  • string表示可变长的字符序列。
  • vector表示存放给定类型的可变长度。
命名空间的using声明
【[基础]C++:string和vector(1)】形式如:using namespace::name;
定义和初始化string对象
[基础]C++:string和vector(1)
文章图片
初始化操作
#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 第五版

    推荐阅读