string和自动推断类型

简介: string和自动推断类型
欢迎来观看温柔了岁月.c的博客 目前 设有C++学习专栏 C语言项目专栏 数据结构与算法专栏 目前主要更新C++学习专栏,C语言项目专栏不定时更新 待C++专栏完毕,会陆续更新C++项目专栏和数据结构与算法专栏 一周主要三更,星期三,星期五,星期天 感谢大家的支持

string和自动推断类型

string

string本身是一个类,大家学会使用就可以

它的头文件是<string>

创建方式

1. #include<iostream>
2. #include<string> //使用string头文件
3. using namespace std;
4. 
5. int main()
6. {
7. //创建方式
8. //1.不赋初值
9.     string str1;
10.     str1 = "温柔了岁月";
11. 
12. //2.赋初值
13.     string str2 = "温柔了岁月";
14. //3.用另一个字符串赋值来创建
15. string str3(str2);  //相当于 str3 = str2;
16. 
17.     cout << str3 << endl;
18. 
19.     string str4 = str3;
20. 
21.     cout << str4 << endl;
22. 
23. system("pause");
24. return 0;
25. }

用string ,赋值的字符串,不用担心大小或者越界的关系,它的大小是系统自动给,动态的

基本操作

比较

1. //比较 
2.     cout << (str3 >= str4) << endl; // 真,结果为1
3. 
4. 
5.     cout << (str5 >= str4) << endl; //假结果为0
1. //输入
2.     string str6;
3.     cin >> str6;
4.     cout << str6;
5. 
6. if (str6 == string("温柔了岁月"))
7.     {
8.         cout << "正确" << endl;
9. 
10.     }

强制类型转换(C与C++)

string("温柔了岁月"),这是C++的强制类型转换 ,

C++中: 数据类型(数据);

C语言中:(数据类型) 数据;

连接

1. 
2. //连接(用加法)
3.     string str7;
4.     str7 = "张三";
5.     string str8 = str7 + "很帅";
6. 
7.     cout << str8 << endl;

大小计算

1.     cout << str7.length() << endl; //当前长度
2.     cout << str7.size() << endl;  //大下   与长度一样
3.     cout << str7.capacity() << endl;  //容量

打印

在C++中直接用cout + << 打印即可如果想要用printf()打印, 不能直接使用%s打印,会出现乱码因为在C++中它是一个类,sring.h 在C中,它相当于 char*

可以使用两个函数_str(), date()

1. #include<iostream>
2. #include<string>
3. #include<cstdio>
4. 
5. using namespace std;
6. 
7. int main()
8. {
9.     string str1 = "温柔了岁月";
10. //printf("%s", str1); //不能直接用%s打印
11. 
12. printf("%s\n", str1.c_str());
13. printf("%s\n", str1.data());
14. 
15. system("pause");
16. return 0;
17. }

自动推断类型

auto

就是系统自动推断出变量的类型

使用

使用auto,一定要又赋值的操作,变量没有赋值,auto 推不出来,自己就报错

如图所示,a = 9,自动推断出了int 类型

好处

  1. 如果你不知道这个变量的类型,你可以直接使用auto,进行推断
  2. 如果这个变量的类型太长,你可以用auto代替,比较简单
当然auto 的应用不只是这几种,还有关于auto的一种新式的for循环,比起传统的更加简单高效这种的后续在进行介绍

decltype

它也是一个自动推断类型,与auto不同的是,它可以进行赋初值,也可以不进行赋初值

人们希望从表达式的类型推断出定义的变量类型,但是不想用该表达式的值初始化变量,为了满足这一要求,所以C++11新标准引入了decltype

使用

decltype((a)) 当里面是双重括号的时候,结果用于是引用decltype(a), 只有当a是引用,它结果才是引用2.基本的用法decltype(a + 1) num; 通过推断表达式a + 1的类型,从而让num也是该类型
1. #include<iostream>
2. 
3. using namespace std;
4. 
5. int main()
6. {
7. 
8. auto a = 9;
9. 
10. decltype(123) a = 123; //赋初值
11. 
12. decltype(234) num; //不赋初值
13. 
14. system("pause");
15. return 0;
16. }

decltype的好处也是跟auto类型一样的,

你不知道这个变量是什么类型,可以用这个来推

相关文章
|
2月前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
29 0
|
1月前
|
JavaScript 前端开发
JavaScript 中如何检测一个变量是一个 String 类型?
JavaScript 中如何检测一个变量是一个 String 类型?
23 2
|
4月前
String字符串类型时间比较(根据时间判断返回 ‘已结束’或‘进行中‘’)
String字符串类型时间比较(根据时间判断返回 ‘已结束’或‘进行中‘’)
23 1
|
12天前
|
Java
Java String类型转换成Date日期类型
Java String类型转换成Date日期类型
|
13天前
|
消息中间件 数据采集 SQL
DataWorks操作报错合集之通过dataworks把表数据发送到kafka,表字段全是string类型如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
23 2
|
18天前
|
存储 消息中间件 缓存
Redis 命令全解析之 String类型
Redis 命令全解析之 String类型
14 1
|
19天前
|
C++
【C++】std::string 转换成非const类型 char* 的三种方法记录
【C++】std::string 转换成非const类型 char* 的三种方法记录
7 0
|
1月前
|
Java
JAVA时期将String类型-->Util.Date类型-->sqlDate类型
JAVA时期将String类型-->Util.Date类型-->sqlDate类型
|
2月前
|
C++ 容器
【C++】标准库类型string
【C++】标准库类型string
165 3
|
2月前
|
安全 Python
Python系列(16)—— string类型转float类型
Python系列(16)—— string类型转float类型