数据结构与C++

数据结构与C++ 知识量:9 - 32 - 91

4.1 串及其基本运算><

串的基本概念- 4.1.1 -

在计算机科学中,串是计算机编程中的一个基本概念,通常用来表示一串连续的字符或数字。串是由0个或多个字符组成的有序序列,称为字符串,记为s='abcdefg'。其中s是字符串的名字,a b c称为串的值,可以是字母、数字或者字符。

串的长度是指串中元素的个数。空串是不含任何字符的串,其长度为0。子串则是主串中任意连续字符组成的字符串。

在C++中,字符串可以表示为字符数组,也可以使用标准库中的std::string类。下面给出两个示例,一个使用字符数组,另一个使用std::string类。

示例1:使用字符数组

#include <iostream>  
  
int main() {  
    // 定义一个字符数组  
    char str[] = "Hello, World!";  
  
    // 输出字符串  
    std::cout << str << std::endl;  
  
    return 0;  
}

示例2:使用std::string类

#include <iostream>  
#include <string>  
  
int main() {  
    // 定义一个字符串对象  
    std::string str = "Hello, World!";  
  
    // 输出字符串  
    std::cout << str << std::endl;  
  
    return 0;  
}

这两个示例都展示了如何定义和输出一个字符串。在第一个示例中,使用字符数组来表示字符串。在第二个示例中,使用std::string类来表示字符串,并利用其提供的方法进行操作。

串的基本运算- 4.1.2 -

串的基本运算主要包括以下几个方面:

  • 求串长:可以使用strlen()函数来求取一个串的长度。例如,strlen(s1)可以求出串s1的长度。

  • 串赋值:可以使用strcpy()函数将一个串赋值给另一个串。例如,strcpy(s2, s1)将把串s1的值赋给串s2。

  • 连接操作:可以使用strcat()函数将两个串连接起来。例如,strcat(s1, s2)将把串s2的值连接到串s1的末尾。

  • 串比较:可以使用strcmp()函数比较两个串的大小。该函数会返回一个整数,根据两个串的大小关系,如果返回值为0则两个串相等,如果返回值小于0则第一个串小于第二个串,如果返回值大于0则第一个串大于第二个串。

  • 求子串:可以使用SubStr()函数获取一个串中的子串。例如,SubStr(s, i, len)将返回从串s的第i个字符开始的长度为len的子串。

以下是一个简单的C++示例,演示了如何进行串的基本运算:

#include <iostream>  
#include <cstring>  
  
using namespace std;  
  
int main() {  
    char s1[100], s2[100], result[100];  
    int len1, len2;  
  
    cout << "请输入第一个字符串:" << endl;  
    cin >> s1;  
  
    cout << "请输入第二个字符串:" << endl;  
    cin >> s2;  
  
    len1 = strlen(s1);  
    len2 = strlen(s2);  
  
    // 连接操作  
    strcat(s1, s2);  
    cout << "连接后的字符串为:" << s1 << endl;  
  
    // 比较操作  
    int cmp = strcmp(s1, s2);  
    if (cmp == 0) {  
        cout << "两个字符串相等" << endl;  
    } else if (cmp < 0) {  
        cout << "第一个字符串小于第二个字符串" << endl;  
    } else {  
        cout << "第一个字符串大于第二个字符串" << endl;  
    }  
  
    // 求子串操作  
    strcpy(result, s1);  
    int start = 3, len = 5;  
    SubStr(result, start, len);  
    cout << "子串为:" << result << endl;  
  
    return 0;  
}

这个示例程序要求用户输入两个字符串,然后进行连接、比较和求子串等基本运算,并输出结果。注意:为了使用strcat()、strcmp()和SubStr()等函数,需要包含头文件<cstring>。