C语言入门(7)--数组与字符串

C语言数组与字符串

在C语言中,数组和字符串是存储和处理数据的重要方式。数组用于存储相同类型的多个元素,而字符串则是特殊的字符数组,以空字符('\0')结尾。

1. 数组

数组是相同类型数据的集合,存储在连续的内存位置。

1.1 数组的定义

数组定义的一般形式为:

数据类型 数组名[元素个数];

例如,定义一个包含5个整数的数组:

int scores[5];

定义时可以初始化数组:

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

如果初始化时元素个数少于数组定义的大小,剩余元素会被自动初始化为0。

1.2 数组的访问和修改

通过索引(从0开始)访问或修改数组元素:

int thirdElement = numbers[2]; // 访问第三个元素
numbers[2] = 30; // 修改第三个元素的值为30
1.3 数组的内存布局

数组在内存中连续存储,数组名是指向数组第一个元素的指针。例如,对于数组int arr[5],在32位系统中,每个整数占用4字节,数组在内存中的布局可能是这样的:

内存地址    |    值
0x1000      |   arr[0]
0x1004      |   arr[1]
0x1008      |   arr[2]
0x100C      |   arr[3]
0x1010      |   arr[4]

可以使用指针算术来操作数组:

int *ptr = arr;
printf("第二个元素:%d\n", *(ptr + 1)); // 输出20
2. 字符串

字符串是特殊的字符数组,以空字符('\0')结尾。

2.1 字符串的表示

字符串可以用字符数组的方式表示:

char site[] = "RUNOOB";

这里的site数组会自动在末尾添加空字符'\0',所以实际上数组的大小是7。

2.2 字符串的初始化

字符串可以在声明时初始化:

char str[] = "Hello World";

编译器会自动计算数组的大小并添加空字符。

2.3 字符串的访问

通过索引访问字符串中的字符:

char letter = str[0]; // 'H'
2.4 字符串的操作

C语言提供了一系列的库函数来操作字符串,这些函数定义在string.h头文件中。常用的字符串操作函数包括:

  • strcpy(s1, s2):复制字符串s2到字符串s1
  • strcat(s1, s2):将字符串s2连接到字符串s1的末尾。
  • strlen(s1):返回字符串s1的长度。
  • strcmp(s1, s2):比较两个字符串,如果s1等于s2返回0,如果s1小于s2返回小于0的值,如果s1大于s2返回大于0的值。
  • strchr(s1, ch):返回一个指针,指向字符串s1中字符ch的第一次出现的位置。
  • strstr(s1, s2):返回一个指针,指向字符串s1中字符串s2的第一次出现的位置。
示例代码
#include <stdio.h>
#include <string.h>

int main() {
    
    
    char str1[14] = "runoob";
    char str2[14] = "google";
    char str3[14];
    
    strcpy(str3, str1);
    printf("strcpy( str3, str1) : %s\n", str3);
    
    strcat(str1, str2);
    printf("strcat( str1, str2): %s\n", str1);
    
    int len = strlen(str1);
    printf("strlen(str1) : %d\n", len);
    
    return 0;
}

输出:

strcpy( str3, str1) : runoob
strcat( str1, str2): runoobgoogle
strlen(str1) : 12

通过以上内容,你应该对C语言中的数组和字符串有了深入的了解。掌握数组和字符串的操作对于编写C语言程序至关重要。

关于C语言数组和字符串的内容,咱们到这告一段落。

希望能对你有帮助。

下期见!

猜你喜欢

转载自blog.csdn.net/Chen7Chan/article/details/143274942