String类

1 几个说明

1)头文件

#include<string>

2)string::size_type 是string class 定义的一个无正负号整数类型

2 string转换成Cstring

1)string::data() 和string::c_str() 转换成字符数组末尾带’\0’
2) string::copy() 末尾不带’\0’

3 构造函数,string类几种常用的构造函数如下

string str1 = "a string";			//隐式调用,用字符串常量初始化 
string str2("a string");			//显示调用,用字符床常量初始化
string str3(str1);					//显示调用,用字符串变量初始化
string str4 = str1;					//拷贝构造函数
string str5(str1,2,3);				//用str1始于位置2且长度顶多是3的部分初始化str5
str string6(str1,2);				//用str1始于位置2的部分初始化str6
char Cstr[] = {'a',' ','s','t','r','i','n','g','\0'};
string str7(Cstr);					//用字符数组/C风格字符串初始化str7
string str8(Cstr,5);				//用字符数组/C风格字符串的前5为初始化str8
string str9(n,'C');					//用n个字符或字符变量初始化str9

4 大小和容量相关的方法

string::size() 					//求字符串字符数的方法
string::length()				//与string::size()等效
string::empty()					//用来检测字符数是否为0
string::max_size()				//返回string最多能够包含的字符数,与PC环境本身限制有关系
string::capacity()				//返回重新分配内存之前,string最多能够包含的字符数

5 比较

//比较
	string s1, s2;
	s1 == s2;						//返回s1和s2是否相等
	s1 < "abc";						//返回s1是否小于字符串“abc”
	//比较操作符将会将字符依字典顺序逐一比较
	s1.compare("astring");			
	s1.compare(string str);
	s1.compare(0, 2, "abcde", 2, 2);	//比较s1从下标是0开始长度是2的部分和“abcdef”下标从2开始长度是2的部分
	s1.compare(0, 2, "abc", 2);			//比较s1从下标是0开始长度是2的部分和“abc”下标从2开始的部分

6 更改内容

//赋值
操作符 = ;
string::assign();
s.assign(aString);
s.assign(aString, 1, 3);							//从下标1开始后面三位的部分
s.assign(aString, 2, std::string::npos);			//从下标2开始,到字符串最后
s.assign("Hello!");									//
s.assign("nico", 5);								//取前5位
s.assign(5, 'x');									//用5个字符赋值

//交换
string.swap();

//置空和删除
std::string s;
s = "";
s.clear();
s.erase();
s.erase(13);									//将s下标13以后的字符删除,包括13
s.erase(7,5); 									//将s下标7后面的的5位清空,包括7
s.pop_back();									//将s的最末位删除

//安插和移除
operator +=;
string::append();		
s.append(aString);
s.append(aString, 1, 3);
s.append(aString, 2, std::string::npos);
s.append("Hello!");
s.append("nico", 5);
s.append(5, 'x');
s.push_back('\n');					
s.push_back();					//用于在尾部插入单个字符
s.insert(size_type,string);		//在索引之前插入字符串

//替换
s.replace(1,2,"abcdef");				//将s的第二位开始后的两个字符用参数的字符串替换

7 子字符串及字符串接合

s.substr();									//返回自身作为字串
s.substr(11);								//取s下标11开始作为字串
s.substr(5,6);								//取s下标5开始后的6个字符作为字串,包括下标5
s.substr(s.find('c'));						//返回从c后面的所有字符作为字串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值