首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >C++ 标准库类型string的初始化以及基本操作

C++ 标准库类型string的初始化以及基本操作

作者头像
用户7886150
修改2021-02-08 09:56:13
修改2021-02-08 09:56:13
6.2K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: C++ isprint()

标准库类型string表示可变长的字符序列,使用string类型必须首先包含string头文件。作为标准库的一部分,string定义在命名空间std中。 

#include<string>

using namespace std; //或者using std::string; 

1.定义和初始化string对象 

//初始化string对象的方式

string s1;           //默认初始化,s1是一个空串

string s2(s1);       //s2是s1的副本               (string类的拷贝构造)

string s2 = s1;      //等价于s2(s1),s2是s1的副本  (string类的拷贝赋值)

string s3("value");  //s3是字面值"value"的副本,除了字面值最后的那个空字符外

string s3 = "value"; //等价于s3("value"),s3是字面值"value"的副本

string s4(n,'c');    //把s4初始化为由连续n个字符c组成的串 

注意: 与char型字符的区别。字符串string初始化时双引号" ",而C语言的char型初始化为单引号。 

char s='g'; 

2.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计起

s1+s2            //返回s1和s2连接后的结果

s1=s2            //用s2的副本代替s1中原来的字符

s1==s2           //如果s1和s2中所含的字符完全一样,则他们相等;string对象的相等性判断

                   对字母的大小写敏感

s1!=s2

<, <=, >, >=     //利用字符在字典中的顺序进行比较,且对字母的大小写敏感 

3.处理string对象中的字符 

针对某个字符的特性判断函数 

C++标准库中cctype中的主要函数,该库主要是字符处理功能,这个头文件声明了一组函数来分类和变换单个字符。这个库中主要有两种函数:一类负责字符分类功能;一类负责字符转换功能。 

 #include <cctype>的函数 

isalnum()    //如果参数是字母数字,即字母或数字,该函数返回true

isalpha()    //如果参数是字母,该函数返回真

isblank()    //如果参数是空格或水平制表符,该函数返回true

iscntrl()    //如果参数是控制字符,该函数返回true

isdigit()    //如果参数是数字(0~9),该函数返回true

isgraph()    //如果参数是除空格之外的打印字符,该函数返回true

islower()    //如果参数是小写字母,该函数返回true

isprint()    //如果参数是打印字符(包括空格),该函数返回true

ispunct()    //如果参数是标点符号,该函数返回true

isspace()    //如果参数是标准空白字符,如空格、进纸、换行符、回车、水平制表符

                  或者垂直制表符,该函数返回true

isupper()    //如果参数是大写字母,该函数返回true

isxdigit()    //如果参数是十六进制的数字,即0~9、a~f、A~F,该函数返回true

tolower()    //如果参数是大写字符,则返回其小写,否则返回该参数

toupper()    //如果参数是小写字母,则返回其大写,否则返回该参数 

使用基于范围的for语句遍历和处理字符 

//遍历字符串输出

string str("some string");    

for(auto c : str )            //auto为C++ 11特性,也可以用size_type类型定义size_type c;

    cout << c <<endl;

//改变字符串中的字符

//转化成大写形式

string s("Hello Word!!!");

for (auto &c : s)

    c = toupper(c);

cout << s << endl; 

使用下标进行遍历处理和随机访问 

下标法str[index]或者str.at(index)获取字符串内指定位置的字符 

4.string类的成员函数以及STL标准库算法 

(未完待续...) 

std::string::substr 

find ,find_first_of ,find_last_of , find_if , adjacent_find的使用 

参考文献:http://www.cplusplus.com/reference/string/string/find_first_of/

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档