zoukankan      html  css  js  c++  java
  • C++ 字符串

    string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行string操作,也可以通过文件等手段进行string操作。同时,C++的算法库对string类也有着很好的支持,并且string类还和c语言的字符串之间有着良好的接口。

    本文将介绍字符串的基本概念和C++的常用操作。

    字符串

    基本概念

    字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。

    通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。

    串的两种最基本的存储方式是顺序存储方式和链接存储方式。

    C++

    遍历

    1. 常规方式

    下标+operator[]

    2. 使用迭代器遍历

    string::iterator it = str.begin();//返回第一个位置的迭代器(类似于指针)
    while (it != str.end()) //str.end()是最后一个数据的下一个位置
    {
    cout<<*it<<endl;
    it++;
    }

    3. 新式for循环

    for(auto ch:s)  cout<<ch;

    成员函数

    长度

    int len = str.length();

    查找

    find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。

    插入

    对string字符串进行插入和删除字符操作函数原型:

    string& insert(int pos, const char* s); //插入字符串
    string& insert(int pos, const string& str); //插入字符串
    string& insert(int pos, int n, char c); //在指定位置插入n个字符

    添加字符

    str.append(1,ch); //在末尾添加一个字符ch

    删除

    cstring& erase(int pos, int n = npos); //删除从Pos开始的n个字符

    字符串拼接

    实现在字符串末尾拼接字符串;重载很多

    string& operator+=(const char* str); //重载+=操作符
    string& operator+=(const char c); //重载+=操作符s
    tring& operator+=(const string& str); //重载+=操作符
    string& append(const char *s); //把字符串s连接到当前字符串结尾
    string& append(const char *s, int n); //把字符串s的前n个字符连接到当前字符串结尾
    string& append(const string &s); //同operator+=(const string& str)
    string& append(const string &s, int pos, int n);//字符串s中从pos开始的n个字符连接到字符串结尾

    注意:例如在 C++ 中,res += s 和 res = res + s 的含义是不一样的。前者是直接在 res 后面添加字符串;后者是用一个临时对象计算 res + s,会消耗很多时间和内存。

    提取子串

    函数substr可以提取string字符串中的子字符串,该函数有两个参数,第一个参数为需要提取的子字符串的起始下标,第二个参数是需要提取的子字符串的长度。

    string s1 = "first second third";  
    string s2; s2 = s1.substr(6, 6);

    排序

    sort(str.begin(),src.end());

    替换字符串

    replace()

    整型转串

    使用to_string()函数

    int num =0;
    string s = to_string(num);

    其它操作

    序号 函数 & 目的
    1 strcpy(s1, s2); 复制字符串 s2 到字符串 s1。
    2 strcat(s1, s2); 连接字符串 s2 到字符串 s1 的末尾。
    3 strlen(s1); 返回字符串 s1 的长度。
    4 strcmp(s1, s2); 如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回值小于 0;如果 s1>s2 则返回值大于 0。
    5 strchr(s1, ch); 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
    6 strstr(s1, s2); 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

  • 相关阅读:
    indexOf--之美
    uniapp_切换主题
    ueditor调用其中的附件上传功能
    php7 编译安装 apache
    快速排序单循环
    插入排序
    走进svg
    phpstorm内网远程debug
    sass&compass&grunt
    centos7+nginx 1.9.0+php-fpm+phpstorm+xdebug+vmware开发环境搭建
  • 原文地址:https://www.cnblogs.com/guoben/p/13339278.html
Copyright © 2011-2022 走看看