C++ string 类

文章目录

  • 引用头文件
  • 初始化赋值
    • 1. 空串
    • 2. 拷贝复制
    • 3. 直接初始化赋值
    • 4. 单个字符初始化
  • 遍历 string 类
    • 1. 下标索引遍历
    • 2. 迭代器遍历
    • 3. 使用 range for 循环遍历字符串(需要 C++11 或更新的版本)
  • string 常用方法
    • 判断字符串是否为空串
    • 获取字符串中字符个数
    • 插入元素
    • 删除元素
    • 追加字符串
    • 替换字符串中指定字符
    • 字符串翻转
    • 返回可以直接打印的字符串
    • 处理string对象中的字符 ,针对某个字符的特性判断函数

引用头文件

#include 
#include 

初始化赋值

1. 空串

string s; //s是一个空串

2. 拷贝复制

string s2=s1; //拷贝初始化,s1是string类对象
string s2(s1); //直接初始化,s1是string类对象

3. 直接初始化赋值

string s1=“hello world”; //拷贝初始化
string s2(“hello world”); //直接初始化

4. 单个字符初始化

string s(10, 'a'); //直接初始化,s的内容是aaaaaaaaaa

遍历 string 类

1. 下标索引遍历

#include 
#include 
 
int main() {
    std::string str = "Hello World";
    
    for (int i = 0; i < str.length(); i++) {
        std::cout << str[i] << std::endl;
    }
    
    return 0;
}

2. 迭代器遍历

#include 
#include 
 
int main() {
    std::string str = "Hello World";
    
    for (std::string::iterator it = str.begin(); it != str.end(); ++it) {
        std::cout << *it << std::endl;
    }
    
    return 0;
}

3. 使用 range for 循环遍历字符串(需要 C++11 或更新的版本)

#include 
#include 
 
int main() {
    std::string str = "Hello World";
    
    for (char c : str) {
        std::cout << c << std::endl;
    }
    
    return 0;
}

string 常用方法

判断字符串是否为空串

s.empty( ) 判断字符串是否为空串

获取字符串中字符个数

  1. s.size( ) 获取字符串中字符个数
  2. s.length( ) 获取字符串中字符个数

两种方法并没有区别

// 在 s 的位置 0 之前插入 s2 的拷贝
s.insert(0, s2) 

插入元素

s.insert(pos, args) 在 pos 之前插入 args 指定的字符

// 在 s 的位置 0 之前插入 s2 的拷贝
s.insert(0, s2) 

删除元素

s.erase(pos, len) 删除从 pos 开始的 len 个字符。如果 len 省略,则删除 pos 开始的后面所有字符。返回一个指向 s 的引用

追加字符串

s.append(args) 将 args 追加到 s。返回一个指向 s 的引用。 args 必须是双引号字符串

替换字符串中指定字符

s.replace(range, args) 将 s 中范围为 range 内的字符替换为 args 指定的字符

#include 
#include 
using namespace std;
int main() { 
    string s1 ="hello world!";
	// 从位置 3 开始,删除 6 个字符,并插入 "aaa".删除插入的字符数量不必相等
    s1.replace(3, 6, "aaa");
	cout << s1 << endl;
	return 0;
}

输出: helaaald!

字符串翻转

s.reverse() 翻转字符串

#include 
#include  
string s2 = "12345";    // 初始化一个字符串
reverse(s2.begin(), s2.end()); // 反转 string 定义的字符串 s2 
cout << s2 << endl; // 输出 54321

返回可以直接打印的字符串

s.c_str() 返回一个正规的C字符串指针也就是char* 类型的指针

#include 
#include 

int main()
{
    char* c;
    std::string a="1234";
    c = (char*)a.c_str();
    printf("c = %s \n", c);
    return 0;
}

处理string对象中的字符 ,针对某个字符的特性判断函数

C++标准库中 cctype 中的主要函数,该库主要是字符处理功能,这个头文件声明了一组函数来分类和变换单个字符。这个库中主要有两种函数:一类负责字符分类功能;一类负责字符转换功能。
C++ string 类_第1张图片

你可能感兴趣的:(C/C++,c++,string)