1.string类简介
首先要使用string类,程序要包含头文件string;string类位于名称空间std中,所以using编译指令是必须要有的,或者std::string来引用它,不过这比较麻烦;
类设计让程序能够自动处理string的大小;
可以这么说,把char数组视为一组用于存储一个字符串的char存储单元,而string类变量是一个表示字符串的实体;
2.C++11字符串初始化
string third_date = {“The Breed Bowl"};
3.赋值,拼接和附加
不能将一个数组赋给另一个数组,但可以将一个string对象赋值给另一个string对象;
char charr1[20];
char charr2[20];
string str1;
string str2;
charr1 = charr2;//这里就会报错
str1 = str2;//这里就不会报错
string也可以合并两个string对象,还可以使用运算符+=将字符串附加到string对象的末尾;
继续上面的代码:
string str3;
str3 = str1 + str2;
str1 += str2;
4.string类的其他操作
函数strcpy()将字符串复制到字符数组中;
函数strcat()将字符串附加到字符数组末尾;
确定字符串中字符数的方法:
char aharr1[20];
string str1;
int len1 = strl.size();
int len2 = strlen(charr1);
strlen()是一个常规函数,返回该字符串包含的字符数,自动去掉空字符;读到空字符结束;
函数size()功能与上相同;
5.string 类I/O
c语言的字符数组与c++的string类对象,对于读取一个单词时基本相同,但是读取一行时,使用的句法不同;参考下下面的代码;
code_c++/strtype4.cpp · Kite/C和C++ - 码云 - 开源中国 (gitee.com)
6.结构简介
就是c语言的结构体,这里叫结构,结构是用户定义的类型;
关键字struct表明,这定义的是一个结构的布局;标识符inflatable是这种数据格式的名称;定义结构后,便可以创建这种类型的变量;C++中允许在声明结构变量时省略关键字struct(c语言中是必须要有的);可以延申一下去了解一下位域结构体;
可以使用成员运算符(.) 来访问各个成员;
struct inflatable
{
char name[20];
float volume;
double price;
};
struct inflatable str1;
inflatable str2;
str1.volume = 12;
注意初始化方式,列表初始化,且等号可有可无;如果大括号内未包含任何东西,各个成员都将设置为0;不允许缩窄转换;
可以使用赋值运算符(=) 将结构赋给另一个同类型的结构,即使成员是数组,这种赋值被称为成员赋值;
7.结构中的位字段
字段的类型应为整型或枚举,接下来是冒号,冒号后面是一个数字,它指定了使用的位数;可以使用没有名称的字段来提供间距;每个成员都被称作位字段;
struct torgle
{
unsigned int SN : 4;
unsigned int : 4; //用来提供间距;
bool goodIn : 1;
bool goodTorgle : 1;
}
torgle tr = {14 , true , false};
8.共用体
共用体(union)是一种数据格式,能够存储不同的数据类型,但只能同时存储其中的一种类型,这一点和结构体不同;
共用体的长度为其最大成员的长度;
共用体的用途之一是,当数据项使用两种或更多种格式(不能同时使用)时,可节省空间;
匿名共用体没有名称,其成员将成为位于相同地址处的变量。显然,每次只有一个成员是当前的成员;
共用体常用于节省内存;
9.枚举
c++的enum工具提供了另一种创建符号常量的方式,这种方式可以代替const;用法与结构类似;
enum spectrum {red, orange, yellow, green, blue, violet, indigo, ultraviolet};
spectrum 成为新类型的名称,red,orange,yellow等作为符号常量,对应整数值0--7,这些常量叫做枚举量;
在不进行强制类型转换的情况下,只能将定义枚举时使用的枚举量赋给这种枚举的变量;
如果试图将一个非法值赋给它,有些编译器会出现错误,有些会发出警告;
对于枚举,只定义了赋值运算符,具体地说,没有为枚举定义算术运算;
枚举量是整型,可被提升为int类型,但int类型不能自动转换为枚举类型;文章来源:https://www.toymoban.com/news/detail-640116.html
如果打算只使用常量,而不创建枚举类型的变量,则可以省略枚举类型的名称;文章来源地址https://www.toymoban.com/news/detail-640116.html
enum {red, orange, yellow, green, blue, violet, indigo, ultraviolet};
到了这里,关于C++学习第七天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!