C++ string类常用操作

简介: C++ string类常用操作

很多程序都需要处理字符串,C++string类提供了很多好用的方法。

使用需要包含头文件<string>

 

1.构造字符串

string(const char * s);          Eg:  string one("Win");

string(size_type n, char c);  //Eg: string two(20, '$');包含 n 个元素的字符串,每个元素都是字符c。

string(const string & str);     //Eg:string three(one)

string();                                  Eg:string four;

string(const char * s, size_type n);  Eg: string five(alls, 20); //alls是一个字符串,five获得该字符串的前20个字符。

template <class Iter>

string(Iter begin, Iter end)                Eg:  string six(alls+6, alls+10);

string(const string & str, string size_type pos=0, szie_type n = nops)   str从pos到结尾或到n个字符为止 Eg:string eight(four,7,16);

2.查找

size_type find(const string& str, size_type pos=0) const  从字符串pos位置开始找,返回第一次找到str的索引,没找到返回string::npos;

size_type find(const char * s, size_type pos=0, size_type n); 从pos开始找,查找s的前n个字符组成的字符串。

size_type find(char ch, size_type pos=0, size_type n)const   查找字符ch。

还有对应的 4个 rfind 返回最后一次出现的位置。


字串中的 字符 出现的位置

find_first_of()

find_last_of()

find_first_not_of()

find_last_not_of()

3.比较

compare()

最常用的比较两个字符串相等   s1.compare(s2)

 

4.字符串反转

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
  string s = "12345";
  reverse(s.begin(),s.end());
  cout<< s;
  system("pause");
  return 0;
}

5.输入输出

可以用cin和cout

读取行使用:

getline(cin,str);

getline(cin, str2,'-')       //读取直到遇到-


相关文章
|
4天前
|
C++
C++ string中的函数和常用用法
C++ 中string中的函数和常用用法
13 4
|
12天前
|
设计模式 安全 编译器
【C++11】特殊类设计
【C++11】特殊类设计
32 10
|
17天前
|
C++
C++友元函数和友元类的使用
C++中的友元(friend)是一种机制,允许类或函数访问其他类的私有成员,以实现数据共享或特殊功能。友元分为两类:类友元和函数友元。类友元允许一个类访问另一个类的私有数据,而函数友元是非成员函数,可以直接访问类的私有成员。虽然提供了便利,但友元破坏了封装性,应谨慎使用。
45 9
|
12天前
|
存储 编译器 C语言
【C++基础 】类和对象(上)
【C++基础 】类和对象(上)
|
20天前
|
C语言 C++
【C++】string模拟实现(下)
本文档介绍了自定义`string`类的一些关键功能实现,包括`reserve()`用于内存管理,`push_back()`和`append()`添加字符或字符串,运算符`+=`的重载,以及`insert()`, `erase()`进行插入和删除操作。此外,还涵盖了`find()`查找函数,字符串的比较运算符重载,`substr()`获取子串,`clear()`清除内容,以及流插入和提取操作。常量`npos`用于表示未找到的标记。文档以代码示例和运行结果展示各功能的使用。
|
20天前
|
编译器 程序员 C语言
【C++】string模拟实现
这篇博客探讨了自定义实现C++ `string` 类的关键功能,包括构造、拷贝构造、赋值运算符重载及析构函数。作者强调了理解并实现这些功能对于面试的重要性。博客介绍了`string` 类的头文件`string.h`,其中定义了迭代器、基本成员函数如`swap()`、`size()`、`c_str()`等,并提到了深拷贝概念。此外,还展示了构造函数、析构函数和赋值运算符的实现,以及迭代器的定义与使用。博客还包括对C语言字符串函数的引用,以辅助读者理解实现细节。
|
20天前
|
编译器 C++
【C++】string类的使用④(字符串操作String operations )
这篇博客探讨了C++ STL中`std::string`的几个关键操作,如`c_str()`和`data()`,它们分别返回指向字符串的const char*指针,前者保证以&#39;\0&#39;结尾,后者不保证。`get_allocator()`返回内存分配器,通常不直接使用。`copy()`函数用于将字符串部分复制到字符数组,不添加&#39;\0&#39;。`find()`和`rfind()`用于向前和向后搜索子串或字符。`npos`是string类中的一个常量,表示找不到匹配项时的返回值。博客通过实例展示了这些函数的用法。
|
20天前
|
存储 C++
【C++】string类的使用③(非成员函数重载Non-member function overloads)
这篇文章探讨了C++中`std::string`的`replace`和`swap`函数以及非成员函数重载。`replace`提供了多种方式替换字符串中的部分内容,包括使用字符串、子串、字符、字符数组和填充字符。`swap`函数用于交换两个`string`对象的内容,成员函数版本效率更高。非成员函数重载包括`operator+`实现字符串连接,关系运算符(如`==`, `&lt;`等)用于比较字符串,以及`swap`非成员函数。此外,还介绍了`getline`函数,用于按指定分隔符从输入流中读取字符串。文章强调了非成员函数在特定情况下的作用,并给出了多个示例代码。
|
19天前
|
存储
数据存储之数组的特点,长度固定,适应变化需求,集合类特点是空间可变,ArrayList泛型,ArrayList<String> array = new ArrayList<String>()
数据存储之数组的特点,长度固定,适应变化需求,集合类特点是空间可变,ArrayList泛型,ArrayList<String> array = new ArrayList<String>()
|
20天前
|
C++
【C++】string类的使用④(常量成员Member constants)
C++ `std::string` 的 `find_first_of`, `find_last_of`, `find_first_not_of`, `find_last_not_of` 函数分别用于从不同方向查找目标字符或子串。它们都返回匹配位置,未找到则返回 `npos`。`substr` 用于提取子字符串,`compare` 则提供更灵活的字符串比较。`npos` 是一个表示最大值的常量,用于标记未找到匹配的情况。示例代码展示了这些函数的实际应用,如替换元音、分割路径、查找非字母字符等。