【快速上手C语言】第五章:数组与字符串——管理和操作数据的利器

        在C语言中,数组和字符串是管理和操作数据的基本工具。数组可以存储一组相同类型的数据,而字符串实际上是以字符数组的形式存在的。理解和掌握它们的使用是编写高效代码的关键。

一维数组与多维数组
  1. 一维数组:一维数组用于存储一组相同类型的元素,这些元素通过索引访问。数组的索引从0开始。
#include <stdio.h>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};  // 声明并初始化一个一维数组

    // 访问数组元素
    for (int i = 0; i < 5; i++) {
        printf("arr[%d] = %d\n", i, arr[i]);
    }

    return 0;
}
// 运行结果:
// arr[0] = 1
// arr[1] = 2
// arr[2] = 3
// arr[3] = 4
// arr[4] = 5

多维数组:多维数组是一种数组的数组,最常见的是二维数组,用于表示矩阵或表格数据。

#include <stdio.h>

int main() {
    int matrix[2][3] = {
        {1, 2, 3},
        {4, 5, 6}
    };  // 声明并初始化一个二维数组

    // 访问二维数组元素
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            printf("matrix[%d][%d] = %d\n", i, j, matrix[i][j]);
        }
    }

    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

多维数组可以扩展到三维甚至更高维度,但在实际应用中,二维数组是最常见的。

字符串的定义与操作

字符串是以'\0'结尾的字符数组。C语言没有专门的字符串类型,字符串通常被定义为字符数组。

#include <stdio.h>

int main() {
    char str[] = "Hello, World!";  // 定义一个字符串

    printf("字符串内容: %s\n", str);  // 使用%s格式化输出字符串

    return 0;
}
// 运行结果:
// 字符串内容: Hello, World!

在上面的例子中,str数组最后包含了一个'\0'字符,它标志着字符串的结束。

常用字符串函数(strcpy、strlen、strcmp等)

C标准库提供了多种函数来操作字符串。以下是几个常用的字符串操作函数:

strcpy:用于复制字符串。

#include <stdio.h>
#include <string.h>

int main() {
    char source[] = "Hello";
    char destination[20];

    strcpy(destination, source);  // 将source复制到destination

    printf("复制后的字符串: %s\n", destination);

    return 0;
}
// 运行结果:
// 复制后的字符串: Hello

strlen:用于计算字符串的长度(不包括'\0')。

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";

    int length = strlen(str);  // 计算字符串的长度

    printf("字符串长度: %d\n", length);

    return 0;
}
// 运行结果:
// 字符串长度: 13

strcmp:用于比较两个字符串。如果两个字符串相等,返回0;如果第一个字符串大于第二个,返回正数;否则返回负数。

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "apple";
    char str2[] = "banana";

    int result = strcmp(str1, str2);  // 比较两个字符串

    if (result == 0) {
        printf("字符串相等\n");
    } else if (result > 0) {
        printf("str1大于str2\n");
    } else {
        printf("str1小于str2\n");
    }

    return 0;
}
// 运行结果:
// str1小于str2
数组与指针的关系

        数组名在很多情况下表现为一个指向数组第一个元素的指针。因此,数组和指针在C语言中有着密切的关系。

#include <stdio.h>

int main() {
    int arr[5] = {10, 20, 30, 40, 50};
    int *ptr = arr;  // 数组名作为指针

    for (int i = 0; i < 5; i++) {
        printf("arr[%d] = %d, *(ptr + %d) = %d\n", i, arr[i], i, *(ptr + i));
    }

    return 0;
}
// 运行结果:
// arr[0] = 10, *(ptr + 0) = 10
// arr[1] = 20, *(ptr + 1) = 20
// arr[2] = 30, *(ptr + 2) = 30
// arr[3] = 40, *(ptr + 3) = 40
// arr[4] = 50, *(ptr + 4) = 50

        在这个例子中,ptr指向数组的第一个元素。通过指针的算术操作,可以访问数组的每个元素。

总结:

        本章介绍了C语言中数组与字符串的使用,包括一维数组和多维数组的定义与操作,字符串的基本概念及常用字符串函数的使用,以及数组与指针之间的关系。掌握这些内容能够帮助你更有效地管理和操作数据。在下一章中,我们将进一步探讨函数,为编写模块化和高效的C程序打下坚实的基础。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值