复合数据类型介绍-String类

一、String类简介

ISO/ANSI C++98标准通过添加string类扩展了C++库, 因此现在能够以string类型的变量而不是字符数组来存储字符串,string类使用比字符数组简单,同时提供了将字符串作为一种数据类型的表示方法。

二、String类使用

要使用string类,必须包含头文件string,且该类位于命名空间std中,因此需要使用using编译指令或使用std::string来引用。
string对象和字符数组之间的主要区别是,可以将string对象声明为简单变量,而不是数组。类的设计让程序能够自动处理string的大小,这会使得使用string对象更方便,也更安全。

2.1、初始化

使用C-风格字符来初始化string对象

#include <string>
string str1 = "education";
string str2 {"school"};
string str3 = {"students"};

2.2、拼接、赋值和附加

这些操作比数组更简单,比如数组无法直接进行相互赋值,但是string对象可以赋值给另一个string对象。

string str1 = "education";
string str2 = str1;

string类简化了字符串合并的操作,可以使用+运算符将两个string对象合并起来,还可以使用运算符+=将字符串附加到string对象的末尾。

string str3;
string str3 = str1 + str2;
str1 += str2;

在C++新增string类之前,程序员使用C语言库中的函数来完成这些字符串的处理。头文件cstring提供了这些函数,strcpy()将字符串复制到字符数组中,strcat()将字符串附加到字符数组末尾。

char charr1, charr2;
strcpy(charr1, charr2); //copy charr2 to charr1;
strcat(charr1, charr2); //append contents of charr2 to charr1;

需要注意使用字符数组进行字符串的操作,总是存在目标数组过小,无法存贮指定信息的危险。这将会覆盖相邻内存,导致程序终止或数据损坏。因此C函数库提供了strcat()和strcpy()相似的函数,strncat()和strncpy(),他们接受指出目标数组最大允许长度的第三个参数,因此更安全。

2.3、获取长度

函数strlen()是一个常规函数,获取一个C风格字符串作为参数,并返回该字符串包含的字符数;函数size()功能相同,但是size()是作为类方法被string类对象调用。

char charr1;
string str1;
int len1 = str1.size(); // obtain length of string type object : str1
int len2 = strlen(charr1); //obtain length of char array type object: charr1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值