欢迎来观看温柔了岁月.c的博客
目前
设有C++学习专栏
C语言项目专栏
数据结构与算法专栏
目前主要更新C++学习专栏,C语言项目专栏不定时更新
待C++专栏完毕,会陆续更新C++项目专栏和数据结构与算法专栏
一周主要三更,星期三,星期五,星期天
感谢大家的支持
string和自动推断类型
string
string本身是一个类,大家学会使用就可以
它的头文件是<string>
创建方式
#include<iostream>
#include<string> //使用string头文件
using namespace std;
int main()
{
//创建方式
//1.不赋初值
string str1;
str1 = "温柔了岁月";
//2.赋初值
string str2 = "温柔了岁月";
//3.用另一个字符串赋值来创建
string str3(str2); //相当于 str3 = str2;
cout << str3 << endl;
string str4 = str3;
cout << str4 << endl;
system("pause");
return 0;
}
用string ,赋值的字符串,不用担心大小或者越界的关系,它的大小是系统自动给,动态的
基本操作
比较
//比较
cout << (str3 >= str4) << endl; // 真,结果为1
cout << (str5 >= str4) << endl; //假结果为0
//输入
string str6;
cin >> str6;
cout << str6;
if (str6 == string("温柔了岁月"))
{
cout << "正确" << endl;
}
强制类型转换(C与C++)
string("温柔了岁月"),这是C++的强制类型转换 ,
C++中: 数据类型(数据);
C语言中:(数据类型) 数据;
连接
//连接(用加法)
string str7;
str7 = "张三";
string str8 = str7 + "很帅";
cout << str8 << endl;
大小计算
cout << str7.length() << endl; //当前长度
cout << str7.size() << endl; //大下 与长度一样
cout << str7.capacity() << endl; //容量
打印
在C++中直接用cout + << 打印即可
如果想要用printf()打印, 不能直接使用%s打印,会出现乱码
因为在C++中它是一个类,sring.h 在C中,它相当于 char*
可以使用两个函数_str(), date()
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
string str1 = "温柔了岁月";
//printf("%s", str1); //不能直接用%s打印
printf("%s\n", str1.c_str());
printf("%s\n", str1.data());
system("pause");
return 0;
}
自动推断类型
auto
就是系统自动推断出变量的类型
使用
使用auto,一定要又赋值的操作,变量没有赋值,auto 推不出来,自己就报错
如图所示,a = 9,自动推断出了int 类型
好处
如果你不知道这个变量的类型,你可以直接使用auto,进行推断
如果这个变量的类型太长,你可以用auto代替,比较简单
当然auto 的应用不只是这几种,还有关于auto的一种新式的for循环,比起传统的更加简单高效
这种的后续在进行介绍
decltype
它也是一个自动推断类型,与auto不同的是,它可以进行赋初值,也可以不进行赋初值
使用
#include<iostream>
using namespace std;
int main()
{
auto a = 9;
decltype(123) a = 123; //赋初值
decltype(234) num; //不赋初值
system("pause");
return 0;
}
decltype的好处也是跟auto类型一样的,
你不知道这个变量是什么类型,可以用这个来推