总结:STL—C++标准库string类

STL是c++标准函数库
其中string是字符串类型(一种可变长度的字符序列)头文件
字符串是对象
下面列举string的一些操作(初始化、复制、比较、连接、查询字符串长度、判断字符串是否为空、访问字符串中的单个字符)

#include <iostream>
#include <string>
using namespace std;
int main(){
string s1, s2;   //创建两个空字符串对象
string s3 = "Hello, World!"; //创建s3,并初始化
string s4("I am");
s2 = "Today";    //赋值
s1 = s3 + " " + s4;   //字符串连接
s1 += " happy ";    //末尾追加
cout << s1 + s2 + "!" <<endl; //输出字符串内容
cout<<"length of s1 is :"<<s1.size()<<endl;
//逐个输出s1中的字符
for(int i=0;i<s1.size();i++)
    cout<<s1[i]<<" ";
}

string的常用操作
os<<s 将s写到输出流os中,返回os
is>>s 从输入流is读取字符串赋给s,字符串以空白分隔,返回is
getline(is,s) 从输入流is中读取一行赋给s,返回is
s.empty() s为空返回true,否则返回false
s.size() 返回s中字符的个数
s[n] 返回s中第n个字符的引用,位置n从0开始计
s.c_str() 转换,返回s中内容对应的c风格字符串首地址
s1=s2 赋值,用s2的副本替换s1原来的内容
s1+s2 连接,返回s1和s2连接后的结果
s1+=s2 追加,把s2的内容追加到s1后面
s1==s2 如果s1和s2中的字符完全一样,则相等
s1!=s2 string对象的比较对字母区分大小写
<,<=,>,>= 利用字符在字典中的顺序进行比较,字母区分大小写

1.读写string类型

  • 用循环读取未知数量的string对象
    输入操作符返回输入流对象,如果输入流对象处于有效状态,表示没有遇到文件结束或非法输入
string word;
while(cin>>word)  //cin有返回值,当无效输入时结束循环
    cout<<word<<endl;
  • getline()函数
    两个参数:输入流对象和存放读入字符串的string对象
    从指定输入流中读取内容,遇到换行符为止
string line;
while(getline(cin,line))
    cout<<line<<endl;

2.判断string对象是否为空
empty()函数判断string对象是否为空,返回一个布尔值

string line;
while(getline(cin,line))
    if(!line.empty())
    cout<<line<<endl;

3.获取string对象的长度
size()函数返回string对象的长度,即对象中字符的个数

string line;
while(getline(cin.line))
    if(line.size()>80)
    cout<<line<<endl;

4.比较string对象
用关系运算符比较两个字符串对象(依照字典序)(运算符的重载)

string s1="hello";
string s2="hello world";  //s2>s1
string s3="Hello"         //s3<s1,s3<s2

5.string对象的赋值和连接
允许把一个string对象的值赋给另一个string对象,也可以为string对象夫一个字符串字面值常量

string s1="hello",s2;
s2=s1;
s1="hello,world!";

6.随机访问string中的字符
用下标运算符可以访问string对象中指定位置的字符
string对象s的下标范围从0到s.size()-1

#include <iostream>
#include <string>
#include <cstddef>
using namespace std;
int main(){
 const string hexdigits = "0123456789ABCDEF";
 cout << "Enter a numbers between 0 and 15: " << endl;
 string::size_type n;
 cin >> n;
 if (n < hexdigits.size())   //检查下标范围
  cout <<"Hex number is: "<< hexdigits[n] << endl;
 else
  cout <<"Invalid input." << endl;
}

可以利用string进行2进制与16进制的转换
二进制转换为十六进制
二进制转换为十六进制就是将二进制每四位二进制为一组,其他与八进制转换为二进制一样。
十六进制转换为二进制
只要需要将十六进制的每一个数用四位二进制表示,然后相连即可。
设计一个string数组
string[16]={1,2,3,4,5,6,7,8,9,A,B,C,D};

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值