c++中string的基础知识


STL standard template library标准模板库

一,什么string

String就是C++、java等编程语言中的字符串,用双引号引起来的几个字符.如"Abc",“一天”.与字符不同的是它指的是一串字符或者一类标识符。

二,头文件

#include < string> // 注意是< string>,不是<string.h>,带.h的是C语言中的头文件
using namespace std; //必须加,否则会报错

三,定义及构造函数
  • 无参数的构造函数
    直接用 cout输出,输出是
    string str;
	cout << str << endl;  //输出为空 
  • 定义一个字符串为几个单个字母
    string str1(5, 'a');
	cout << str1 << endl;

输出为 :aaaaa

  • 字母串初始化
    string str2("abcdefg");
	cout << str2 << endl;  

输出为 :abcdefg

  • 定义某个字符串的前几个
    string str3("abcdefg", 3);
	cout << str3 << endl;  

输出为 :abc

  • 定义某个字符串的中间几个
    string str4("abcdefg", 2, 5);
	cout << str4 << endl;  

输出为 : cdefg

  • 拷贝构造
	string str5(str2);
	cout << str5 << endl; 

输出为 :abcdefg

  • empty():判断字符串是否为空
    string str;
	cout << str.empty() << endl; 
	string str2("abcdefg");
	cout << str2.empty() << endl;

若为空,则返回 true,及 1,若非空,则返回 false,及0

四,属性
  • 容量

(1) capacity() :

    string str1(10, 'a');
	cout << str1.capacity() << endl;

不同编译器默认的容量大小不同,用该函数可以计算容量,即申请的空间

(2)reserve() :

	str1.reserve();    //修改容量 
	cout << str1.capacity() << endl;
	cout << str1.length() <<endl;
	cout << str1.size() <<endl;

只能将容量变大,不能变小

  • 字符串长度 :length()
    string str1(10, 'a');
	cout << str1.length() <<endl;
  • 字符个数 :size()
	string str1(10, 'a');
	cout << str1.size() <<endl;

和字符串长度数值一样,但是含义不同

  • 重新设置字符个数 : resize()
   	str1.resize(5);    //重新设置字符个数
	cout << str1.capacity() << endl;
	cout << str1.length() <<endl;
	cout << str1.size() <<endl;
	cout << str1 << endl;  //输出5个 a

容量不变,字符串长度会变

五,输出
  • 输出全部

(1)str是一个,一个对象,并不是一个字符串,可以直接用cout输出

cout << str << endl;

(2)用c_str输出全部

cout << str.c_str() << endl;

  • 输出单个字符

(1)下标运算

cout <<str[1] << endl; //通过下标运算输出指定元素,注意不可以越界,越界会崩溃

(2) 用 at( ) 输出单个元素

cout << str.at(2) << endl; //越界会异常

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值