数据结构与C++ 知识量:9 - 32 - 91
在计算机科学中,串是计算机编程中的一个基本概念,通常用来表示一串连续的字符或数字。串是由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类来表示字符串,并利用其提供的方法进行操作。
串的基本运算主要包括以下几个方面:
求串长:可以使用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>。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6