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类型一样的,

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

相关文章
|
1月前
|
数据可视化 Java
让星星月亮告诉你,通过反射创建类的实例对象,并通过Unsafe theUnsafe来修改实例对象的私有的String类型的成员属性的值
本文介绍了如何使用 Unsafe 类通过反射机制修改对象的私有属性值。主要包括: 1. 获取 Unsafe 的 theUnsafe 属性:通过反射获取 Unsafe类的私有静态属性theUnsafe,并放开其访问权限,以便后续操作 2. 利用反射创建 User 类的实例对象:通过反射创建User类的实例对象,并定义预期值 3. 利用反射获取实例对象的name属性并修改:通过反射获取 User类实例对象的私有属性name,使用 Unsafe`的compareAndSwapObject方法直接在内存地址上修改属性值 核心代码展示了详细的步骤和逻辑,确保了对私有属性的修改不受 JVM 访问权限的限制
52 4
|
1月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
27 3
|
3月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何将STRING类型转换为DATETIME类型
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
存储 NoSQL 索引
MPP架构数据仓库使用问题之在ORC文件中,String类型字段是怎么进行编码的
MPP架构数据仓库使用问题之在ORC文件中,String类型字段是怎么进行编码的
|
3月前
|
开发工具 数据安全/隐私保护
【Azure Developer】使用MSAL4J 与 ADAL4J 的SDK时候,遇见了类型冲突问题 "java.util.Collections$SingletonList cannot be cast to java.lang.String"
【Azure Developer】使用MSAL4J 与 ADAL4J 的SDK时候,遇见了类型冲突问题 "java.util.Collections$SingletonList cannot be cast to java.lang.String"
|
3月前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
42 0
|
4月前
|
存储 SQL 分布式计算
MaxCompute产品使用合集之表中的某个列设置为string类型,并且超过了8M,该如何处理
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
102 8
|
5月前
|
Java 数据处理 Apache
探讨Java中判断String类型为空和null的方法
探讨Java中判断String类型为空和null的方法
73 1
|
5月前
|
C语言 C++
C++对C的改进和拓展\string类型
C++对C的改进和拓展\string类型
29 1
|
4月前
|
存储 NoSQL Redis
Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX

热门文章

最新文章

下一篇
无影云桌面