第 33课 C++中的字符串(上)

历史的遗留问题
在C语言中没有真正意义上的字符串,为了表达字符串这个概念利用字符数组来模拟字符串
C语言不支持真正意义上的字符串 (C++也不支持
C语言用字符数组一组函数实现字符串操作 (C++中同样支持)
C语言不支持自定义类型,因此无法获得字符串类型。(C++中支持自定义类型)
解决方案:
从C到C++的进化过程引入了自定义类型
在C++中可以通过类完成字符串类型的定义
问题:
C++中的原生类型系统是否包含字符串类型?

标准库中的字符串类
C++语言直接支持C语言的所有概念
C++语言中没有原生的字符串类型

C++标准库提供了string类型
-string直接支持字符串连接(通过重载+这个操作符)
-string直接支持字符串的大小比较 (通过重载大小操作符实现)
-string直接支持子串查找和提取
-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;
}
原文地址:https://www.cnblogs.com/-glb/p/11914513.html