C++之数组和字符串
在C++中,数组和字符串是存储和操作数据的两种基本方式。下面我将分别介绍数组和字符串的基本概念和使用。
数组
一维数组
一维数组是最简单的数组形式,它存储相同类型的元素。声明一维数组的语法如下:
type arrayName[arraySize];
例如,声明一个包含10个整数的数组:
int numbers[10];
多维数组
多维数组可以看作是数组的数组。二维数组的声明语法如下:
type arrayName[rowSize][columnSize];
例如,声明一个2x3的整数数组:
int matrix[2][3];
动态数组(使用new和delete)
动态数组在运行时分配大小,使用new
和delete
操作符。例如,创建一个动态数组:
int* dynamicArray = new int[arraySize];
使用完毕后,需要使用delete[]
来释放内存:
delete[] dynamicArray;
字符串
字符串常量
字符串常量是字符数组的只读版本,通常用双引号括起来。例如:
const char str[] = "Hello, World!";
字符串处理函数
C语言风格字符串提供了一些基本的字符串处理函数,如strlen
(计算字符串长度)、strcpy
(复制字符串)、strcat
(连接字符串)、strcmp
(比较字符串)等。例如:
#include <cstring>
char str1[] = "Hello";
char str2[10];
// 复制str1到str2
strcpy(str2, str1);
// 连接" World"到str2
strcat(str2, " World");
// 比较str1和str2
if (strcmp(str1, str2) != 0) {
// 字符串不相等
}
std::string 类的使用
C++提供了std::string
类,它是一个可变长度的字符串类,提供了丰富的成员函数来处理字符串。使用std::string
需要包含头文件<string>
。以下是一些基本操作:
#include <string>
#include <iostream>
int main() {
std::string str1 = "Hello";
std::string str2 = "World";
// 连接字符串
str1 += ", " + str2;
// 获取字符串长度
std::cout << "Length of str1: " << str1.length() << std::endl;
// 比较字符串
if (str1 == str2) {
std::cout << "Strings are equal." << std::endl;
} else {
std::cout << "Strings are not equal." << std::endl;
}
return 0;
}
std::string
类还提供了其他功能,如查找子串、替换字符、插入和删除字符等。