C++--标准库 字符串类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++--标准库 字符串类相关的知识,希望对你有一定的参考价值。

一.C++标准库

C++标准库
1.C++标准并不是C++语言的一部分
2.C++标准库是由类库和函数库组成的集合
3.C++标准库中定义的类和对象位于std命名空间中
4.C++标准库的头文件都不带.h后缀
5.C++标准库涵盖了C库的功能
C++编译环境的组成
技术图片
C++标准库预定义了多数常用的数据结构
技术图片
代码示例

二.字符串类

Q:C语言存在的问题
1.C语言不支持真正意义上的字符串
2.C语言用字符数组和一组函数实现字符串操作
3.C语言不支持自定义类型,因此无法获得字符串类型
解决方法
1.从C到C++的进化过程引入了自定义类型
2.在C++中可以通过类完成字符串类型的定义

标准库中的字符串类
1.C++语言直接支持C语言的所有概念
2.C++语言中没有原生的字符串类型
3.C++标准库提供了string类型(直接支持字符串连接,支持字符串的大小比较,支持子串查找和提取,支持字符串的插入和替换)
字符串按大小排列(按照字典)与一连串的排列代码示例

#include <iostream>
#include <string>

using namespace std;

void string_sort(string a[], int len)//大小排列

    for(int i=0; i<len; i++)
    
        for(int j=i; j<len; j++)
        
            if( a[i] > a[j] )//字符串大小比较
            
                swap(a[i], a[j]);
            
        
    


string string_add(string a[], int len)//添加

    string ret = "";

    for(int i=0; i<len; i++)
    
        ret += a[i] + "; ";
    

    return ret;


int main()

    string sa[7] = 
    
        "Hello World",
        "D.T.Software",
        "C#",
        "Java",
        "C++",
        "Python",
        "TypeScript"
    ;

    string_sort(sa, 7);

    for(int i=0; i<7; i++)
    
        cout << sa[i] << endl;
    

    cout << endl;

    cout << string_add(sa, 7) << endl;

    return 0;

运行结果如图所示
技术图片
1为大小排列的结果,2为一串排列的结果

题目分析:字符串循环右移
示例:abcdefg循环右移3位得到efgabcd
分析:1.先找到所需移位字符串的位置 2循环经过一定的次数会重复

#include <iostream>
#include <string>

using namespace std;

string operator >> (const string& s, unsigned int n)

    string ret = "";
    unsigned int pos = 0;

    n = n % s.length();//长度与循环次数取余
    pos = s.length() - n;//确定循环的位置
    ret = s.substr(pos);//找到位置
    ret += s.substr(0, pos);//将循环位置的前面的字符串添加到该点后面

    return ret;


int main()

    string s = "abcdefg";
    string r = (s >> 3);

    cout << r << endl;

    return 0;

运行的结果如图所示
技术图片
小结
1.应用开发中大多数的情况都在进行字符串处理
2.C++中没有直接原生的字符串类型
3.标准库中通过string类支持字符串的概念
4.string类支持字符串和数字的相互转换
5.string类的应用使得问题的求解变得简单

以上是关于C++--标准库 字符串类的主要内容,如果未能解决你的问题,请参考以下文章

71.C++标准库类型string

cpp►标准库简介

C++标准库异常类

Standard C 语言标准函数库介绍

-cpp string类和标准模板库

-cpp string类和标准模板库