标准库——string/char类型

关于标准库中sring、char、vector、set、map、queue、stack、bitset等,方法有些记不清楚,每次用每次查,很费时间,干脆自己整理一下,记不住的时候,查询更方便。

// 包含头文件和声明
#include<string>
using std::string;

// cstring 是 string.h 头文件的 C++ 版本,而 string.h 则是C语言提供的标准库

string初始化方式

getline(cin, str);  //读取输入行的内容,
while(getline(cin, str))
{
    cout << str << endl; 
}
//内容就一行一行的输出

string常用操作

与容器共有的string操作

// 迭代器的使用
string s("hello word!");
string::iterator iter = s.begin();
while(iter != s.end())
{
    cout << *iter++ << endl;
}

string的反转操作

reverse(str.begin(), str.end()); 

string类型的其他操作

 

string类型特有的版本

子串操作

string查找操作

string类型compare操作

string对象中字符处理,可以知道字符是否为空白、字母、数字。

int ret = tolower(c); // 返回小写字母的ASCII表的编号,且并不会改变c的大写字母。

C 风格字符串

// 尽管 C++ 支持 C 风格字符串,但不应该在 C++ 程序中使用这个类型,会引起不必要的麻烦。

char ca1[] = {'C', '+', '+'};    // 没有以null结尾,不是C风格

char ca2[] = {'C', '+', '+', '\0'};  //   C风格

char ca3[] = "C++";  //  C风格

const char *cp = "C++";  // C风格

char *cp1 = ca1;  // cp1 指向第一个元素,非C类型,不是以NULL结束的数组

char *cp2 = ca2;  // 指向第一个非空元素

// C风格字符串的使用
const char *cp = "some value";
while(*cp) {
    // do something to *cp;
    ++cp;
}

操纵 C 风格字符串的标准库函数

#include <cstring>

char ca[] = {'C', '+', '+'};  // 没有以NULL结尾,

cout << strlen(ca) << endl;  // 结果不可预料,disaster!

所以,尽可能使用标准库类型的string。

string str("hello world");

char *c = str;  // error

char *c = str.c_str();  //ok,but not quite

const char *c = str.c_str(); // ok

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值