C++对C的改进和拓展\string类型

简介: C++对C的改进和拓展\string类型

需要 #include <string>

不用关心内存如何分配

无需处理'\0'结束字符

#include <iostream>
#include <string>
using namespace std;
 
int main()
{
  string s1;
  string s2 = "Student";
  string s3 = s2;
  string s4(8, 'A');  //8个A
  
  cout << "input >>";
  cin >> s1;  //遇到空格、tab、回车结束
  //带空格 >>> getline(cin,s1)
  cout << s1 << endl << s2 << endl << s3 << endl << s4 << endl;
  s4 = s1;
 
  cout << "s4=" << s4 << " length is>>" << s4.length() << endl;
  //length() 是 string 类的一个成员函数
 
  s2 = s3 + ' ' + s4;
  //右边可以是 string 字符串、C风格字符串、或一个 char 字符
  cout << "s2=" << s2 << endl;
 
  //对字符串进行操作
  s3.insert(7, "&Teacher"); //s3 7下标开始(不包括) 插入
  cout << "s3=" << s3 << endl;
 
  s3.replace(2, 4, "ar"); //s3 2下标开始(不包括) 长度为4的子串 替换
  cout << "s3=" << s3 << endl;
 
  s1 = s3.substr(6, 7); //s3 6下标开始(不包括) 长度为7字串
  cout << "s1=" << s1 << endl;
 
  int pos = s3.find("s1");  //s3中找s1,存在则返回 首字符下标,否则返回-1
  cout << "pos=" << pos << endl;
 
  s3.erase(5, 8); //5下标开始(不包括) 长度8
  cout << "s3=" << s3 << endl;
 
  bool f = s1 > s4;
  cout << "f=" << f << " boolalpha>>" << boolalpha << f << endl;
 
  return 0;
}

string 类型转换为 C语言风格的字符串,使用 .c_str()

目录
相关文章
|
25天前
|
C语言 C++ 容器
【c++丨STL】string模拟实现(附源码)
本文详细介绍了如何模拟实现C++ STL中的`string`类,包括其构造函数、拷贝构造、赋值重载、析构函数等基本功能,以及字符串的插入、删除、查找、比较等操作。文章还展示了如何实现输入输出流操作符,使自定义的`string`类能够方便地与`cin`和`cout`配合使用。通过这些实现,读者不仅能加深对`string`类的理解,还能提升对C++编程技巧的掌握。
52 5
|
25天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
38 2
|
2月前
|
C++ 容器
|
2月前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
26 1
|
2月前
|
数据可视化 Java
让星星月亮告诉你,通过反射创建类的实例对象,并通过Unsafe theUnsafe来修改实例对象的私有的String类型的成员属性的值
本文介绍了如何使用 Unsafe 类通过反射机制修改对象的私有属性值。主要包括: 1. 获取 Unsafe 的 theUnsafe 属性:通过反射获取 Unsafe类的私有静态属性theUnsafe,并放开其访问权限,以便后续操作 2. 利用反射创建 User 类的实例对象:通过反射创建User类的实例对象,并定义预期值 3. 利用反射获取实例对象的name属性并修改:通过反射获取 User类实例对象的私有属性name,使用 Unsafe`的compareAndSwapObject方法直接在内存地址上修改属性值 核心代码展示了详细的步骤和逻辑,确保了对私有属性的修改不受 JVM 访问权限的限制
64 4
|
2月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
29 3
|
2月前
|
C++ 容器
|
2月前
|
C++ 容器
|
2月前
|
存储 C++ 容器
|
2月前
|
安全 C语言 C++
【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析
【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析
46 4