14.C#語言:數組和字符串的操作

2024年2月6日 20点热度 0人点赞

C語言中的數組是一種數據結構,可以存儲固定大小的相同類型的元素序列。字符串是一種特殊的數組,用於存儲字符序列。在C語言中,字符串實際上是以空字符'\0'結尾的字符數組。下面將詳細介紹數組和字符串的操作,並給出一些例子。

數組的操作

聲明和初始化

// 聲明一個整型數組,包含5個元素
int numbers[5];
// 聲明並初始化數組
int values[] = {1, 2, 3, 4, 5}; // 數組大小為5
// 聲明一個二維數組
int matrix[3][3]; // 3x3的矩陣

訪問數組元素

// 設置數組元素的值
numbers[0] = 10; // 第一個元素
numbers[1] = 20; // 第二個元素
// 獲取數組元素的值
int firstValue = values[0]; // 獲取第一個元素的值
int secondValue = values[1]; // 獲取第二個元素的值
// 訪問二維數組元素
matrix[0][0] = 1;
matrix[1][1] = 2;

遍歷數組

#include <stdio.h>
int main() {
    // 聲明並初始化數組
    int values[] = { 1, 2, 3, 4, 5 }; // 數組大小為5
    // 聲明一個二維數組
    int matrix[3][3]; // 3x3的矩陣,//沒有初使化值
    // 使用for循環遍歷一維數組
    for (int i = 0; i < 5; i  ) {
        printf("%d ", values[i]);
    }
    printf("\n");
    // 使用嵌套for循環遍歷二維數組
    for (int i = 0; i < 3; i  ) {
        for (int j = 0; j < 3; j  ) {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
    return 0;
}

字符串的操作

聲明和初始化字符串

// 聲明一個字符串
char name[10];
// 初始化字符串
char greeting[] = "Hello"; // 自動包含結束符'\0'
// 使用字符串常量初始化
char welcome[] = "Welcome"; // 等同於 {'W', 'e', 'l', 'c', 'o', 'm', 'e', '\0'}

字符串的輸入輸出

// 輸出字符串
printf("%s\n", greeting);
// 輸入字符串
scanf("%s", name); // 註意:不需要&符號,因為數組名本身就是地址
#define _CRT_SECURE_NO_WARNINGS 0 //在vs中需要修改這個,不然用scanf會有問題
#include <stdio.h>
int main() {
    // 聲明一個字符串
    char name[10];
    // 初始化字符串
    char greeting[] = "Hello"; // 自動包含結束符'\0'
    // 使用字符串常量初始化
    char welcome[] = "Welcome"; // 等同於 {'W', 'e', 'l', 'c', 'o', 'm', 'e', '\0'}
    // 輸出字符串
    printf("%s\n", greeting);
    // 輸入字符串
    scanf("%s", name); // 註意:不需要&符號,因為數組名本身就是地址
    printf("%s", name);
    return 0;
}

字符串函數

C標準庫提供了一系列處理字符串的函數,需要包含頭文件 string.h。

#include <string.h>
// 計算字符串長度
int len = strlen(greeting); // 結果是5
// 字符串拷貝
strcpy(name, "Alice"); // 將"Alice"拷貝到name
// 字符串連接
strcat(welcome, " everyone!"); // 結果是"Welcome everyone!"
// 字符串比較
int cmp = strcmp(greeting, "Hello"); // 結果是0,表示相等
// 查找字符
char *p = strchr(greeting, 'e'); // p指向'e'的位置
// 查找子字符串
char *sub = strstr(welcome, "come"); // sub指向"come"的位置

示例:字符串反轉

void reverseString(char *str) {
    int len = strlen(str);
    for (int i = 0; i < len / 2; i  ) {
        char temp = str[i];
        str[i] = str[len - i - 1];
        str[len - i - 1] = temp;
    }
}
// 使用示例
char example[] = "example";
reverseString(example);
printf("Reversed string: %s\n", example); // 輸出:elpmaxe

以上是對C語言中數組和字符串操作的基本介紹。通過這些示例,你可以看到如何聲明、初始化、訪問以及使用標準庫函數來處理數組和字符串。在實際編程中,數組和字符串是處理數據的基礎,掌握它們的操作至關重要。