首页 > 其他分享 >数组与字符串 - 一维数组、二维数组、字符串处理

数组与字符串 - 一维数组、二维数组、字符串处理

时间:2024-12-29 11:26:24浏览次数:7  
标签:std 数组 int matrix 一维 字符串 string

引言

数组和字符串是编程中非常常见的数据结构,用于存储和操作一组相同类型的数据。C++ 提供了丰富的语法和库函数来处理数组和字符串,使得这些操作既简单又高效。本文将详细介绍 C++ 中一维数组、二维数组和字符串的使用方法,并通过示例帮助读者更好地理解。


1. 一维数组

一维数组是一组相同类型的元素的集合,可以通过索引访问每个元素。在 C++ 中,定义一维数组的基本语法如下:

类型名 数组名[数组大小];

示例:

定义并初始化一个包含 5 个整数的一维数组:

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};

    // 输出数组中的元素
    for (int i = 0; i < 5; ++i) {
        cout << "numbers[" << i << "] = " << numbers[i] << endl;
    }

    return 0;
}

输出:

numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
numbers[3] = 4
numbers[4] = 5

2. 二维数组

二维数组可以看作是一个表格,由行和列组成。定义二维数组的基本语法如下:

类型名 数组名[行数][列数];

示例:

定义并初始化一个 3x3 的二维数组:

#include <iostream>
using namespace std;

int main() {
    int matrix[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

    // 输出二维数组中的元素
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 3; ++j) {
            cout << "matrix[" << i << "][" << j << "] = " << matrix[i][j] << endl;
        }
    }

    return 0;
}

输出:

matrix[0][0] = 1
matrix[0][1] = 2
matrix[0][2] = 3
matrix[1][0] = 4
matrix[1][1] = 5
matrix[1][2] = 6
matrix[2][0] = 7
matrix[2][1] = 8
matrix[2][2] = 9

3. 字符串处理

在 C++ 中,字符串可以用字符数组表示,也可以使用标准库中的 std::string 类。std::string 提供了许多方便的成员函数来处理字符串。

3.1 使用字符数组

字符数组是以空字符 \0 结尾的字符序列。定义字符数组的基本语法如下:

char 字符数组名[数组大小];

示例:

定义并初始化一个字符数组:

#include <iostream>
using namespace std;

int main() {
    char greeting[] = "Hello, World!";
    
    // 输出字符数组
    cout << greeting << endl;

    return 0;
}

输出:

Hello, World!
3.2 使用 std::string

std::string 是 C++ 标准库提供的类,提供了许多方便的成员函数来处理字符串。要使用 std::string,需要包含头文件 <string>

示例:

使用 std::string 进行字符串操作:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string greeting = "Hello";
    string name = "World";

    // 拼接字符串
    string message = greeting + ", " + name + "!";

    // 输出字符串
    cout << message << endl;

    // 获取字符串长度
    cout << "Length of message: " << message.length() << endl;

    // 查找子字符串
    size_t pos = message.find("World");
    if (pos != string::npos) {
        cout << "Found 'World' at position: " << pos << endl;
    }

    return 0;
}

输出:

Hello, World!
Length of message: 13
Found 'World' at position: 7

4. 常见操作
4.1 遍历数组

遍历数组时,可以使用循环结构(如 for 循环)来逐个访问数组中的元素。

示例:

遍历一维数组并计算总和:

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    int sum = 0;

    for (int i = 0; i < 5; ++i) {
        sum += numbers[i];
    }

    cout << "Sum: " << sum << endl;

    return 0;
}

输出:

Sum: 15
4.2 字符串输入输出

使用 cin 和 cout 可以方便地进行字符串的输入和输出。

示例:

从用户输入获取字符串并输出:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string name;

    cout << "Enter your name: ";
    getline(cin, name);

    cout << "Hello, " << name << "!" << endl;

    return 0;
}

输出:

Enter your name: John Doe
Hello, John Doe!

总结

本文详细介绍了 C++ 中一维数组、二维数组和字符串的使用方法,包括定义、初始化、遍历和常见操作。希望这些内容能帮助读者更好地理解和掌握数组与字符串的应用。如果您有任何问题或需要进一步的帮助,请随时留言!


参考资料

标签:std,数组,int,matrix,一维,字符串,string
From: https://blog.csdn.net/2301_81482480/article/details/144781841

相关文章

  • 字符串逆序
    way1:循环版#include<stdio.h>#include<string.h>intmain(){   chararr[]="abcdef";   intleft,right,t;   left=0;   right=strlen(arr)-1;   while(left<right)   {      t=arr[left];      arr[left]=arr[right]; ......
  • Go基础之数组,切片,Map
    目录1数组1.1简介1.1.1声明数组1.1.2初始化数组1.3访问数组元素1.4多维数组1.4.1二维数组1.4.2初始化二维数组1.4.3访问二维数组1.5数组与函数2切片2.1简介2.1.1定义切片2.1.2切片初始化2.1.3len()和cap()函数2.1.4空(nil)切片2.2切片操作2.2.1切片截取2.2.2......
  • Emacs折腾日记(六)——elisp字符与字符串类型
    本文相关的知识点主要来自elisp简明教程后续内容可以直接查看这个教程上一节我们了解了elisp中基础数据类型之一的数字类型,相比于C/C++来说elisp的数字类型更少,学习起来可能也更加简单。那么这篇我们来学习另一个数据类型——字符串字符串的基本介绍回忆以下在C/C++中学......
  • Python 标准库:string——字符串操作
    文章目录模块介绍主要常量主要类-Formatter-Template主要函数-capwords()-Template.substitute()-Formatter.format()模块介绍string模块提供了许多与字符串操作相关的常量和函数。它主要用于处理字符串,包括字符集合、格式化操作和其他与字符串相关的功能。......
  • [20241227]字符串转换成列表问题.txt
    [20241227]字符串转换成列表问题.txt--//开发经常会写sql语句,经常会出现in('111122','1111113'..,'2222111')之类的情况,一般语句in里面内容经常变化,导致无法使--//用绑定变量。--//实际上以前例子,通过建立type,然后建立函数将拼接的字符串转换为数字或者字符串列表。--//前几天有......
  • 2024/12/17 【字符串】LeetCode 459.重复的子字符串 【❌】
    https://programmercarl.com/0459.%E9%87%8D%E5%A4%8D%E7%9A%84%E5%AD%90%E5%AD%97%E7%AC%A6%E4%B8%B2.html#%E6%80%9D%E8%B7%AFhttps://leetcode.cn/problems/repeated-substring-pattern/子串结束位置大于中间位置的话,一定不能重复组成字符串。如果next[len-1]!=-1,则说......
  • leetcode 2466. 统计构造好字符串的方案数
    2466.统计构造好字符串的方案数没写出来......
  • 2024-12-28:求出出现两次数字的 XOR 值。用go语言,给定一个数组 nums,其中的数字出现的频
    2024-12-28:求出出现两次数字的XOR值。用go语言,给定一个数组nums,其中的数字出现的频率要么是一次,要么是两次。请找出所有出现两次的数字,并计算它们的按位XOR值。如果没有数字出现两次,则返回0。1<=nums.length<=50。1<=nums[i]<=50。nums中每个数字要么出现过一......
  • 34. 在排序数组中查找元素的第一个和最后一个位置
    在排序数组中查找元素的第一个和最后一个位置给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1,-1]。你必须设计并实现时间复杂度为O(logn)的算法解决此问题。示......
  • js里面对数组的一些独特/特殊函数
    数组.foreach(函数)这个函数里面默认的参数就是数组里面的每一个元素注意:这里面函数不需要返回参数vararr1=[1,2,3,4,5,6,7]arr1.foreach(function(item){console.log(item)})得到1234567新数组=数组.filter(函数)本质上是foreach的进阶版,在函数中对每一个......