C 多维数组、特殊字符和字符串函数详解


C语言中的多维数组、特殊字符和字符串函数详解

在C语言中,多维数组、特殊字符和字符串函数是非常重要的概念。下面是对这些内容的详细解释。


多维数组

多维数组是一个数组,其元素本身也是数组。常见的是二维数组,但也可以有更多维度。

声明和初始化多维数组

#include <stdio.h>

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

    // 访问数组元素
    printf("array[0][1] = %d\n", array[0][1]); // 输出2

    // 使用循环遍历多维数组
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            printf("array[%d][%d] = %d\n", i, j, array[i][j]);
        }
    }

    return 0;
}

高维数组

#include <stdio.h>

int main() {
    // 声明并初始化一个3x3x3的三维数组
    int array[3][3][3] = {
        {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        },
        {
            {10, 11, 12},
            {13, 14, 15},
            {16, 17, 18}
        },
        {
            {19, 20, 21},
            {22, 23, 24},
            {25, 26, 27}
        }
    };

    // 访问数组元素
    printf("array[1][2][0] = %d\n", array[1][2][0]); // 输出16

    // 使用循环遍历多维数组
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            for (int k = 0; k < 3; k++) {
                printf("array[%d][%d][%d] = %d\n", i, j, k, array[i][j][k]);
            }
        }
    }

    return 0;
}

特殊字符

C语言中有许多特殊字符用于各种控制和转义。这些字符通常以反斜杠 \ 开头。

常见特殊字符

  • \n : 换行
  • \t : 水平制表符
  • \\ : 反斜杠
  • \" : 双引号
  • \' : 单引号
  • \0 : 空字符(字符串的结尾标志)

示例

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    printf("This is a tab:\tHello!\n");
    printf("This is a backslash: \\\n");
    printf("This is a double quote: \"\n");
    printf("This is a single quote: '\n");

    return 0;
}

字符串函数

C语言中处理字符串的函数主要在<string.h>库中。下面列出了一些常用的字符串函数。

常用字符串函数

  1. strlen: 获取字符串的长度

    #include <stdio.h>
     #include <string.h>
    
     int main() {
         char str[] = "Hello, World!";
         printf("Length of the string: %lu\n", strlen(str)); // 输出13
         return 0;
     }
    
  2. strcpy: 复制字符串

    #include <stdio.h>
     #include <string.h>
    
     int main() {
         char src[] = "Hello, World!";
         char dest[50];
    
         strcpy(dest, src);
         printf("Copied string: %s\n", dest); // 输出Hello, World!
    
         return 0;
     }
    
  3. strcat: 拼接字符串

    #include <stdio.h>
     #include <string.h>
    
     int main() {
         char str1[50] = "Hello, ";
         char str2[] = "World!";
    
         strcat(str1, str2);
         printf("Concatenated string: %s\n", str1); // 输出Hello, World!
    
         return 0;
     }
    
  4. strcmp: 比较字符串

    #include <stdio.h>
     #include <string.h>
    
     int main() {
         char str1[] = "Hello";
         char str2[] = "World";
    
         if (strcmp(str1, str2) == 0) {
             printf("Strings are equal\n");
         } else {
             printf("Strings are not equal\n"); // 输出Strings are not equal
         }
    
         return 0;
     }
    
  5. strchr: 查找字符在字符串中的位置

    #include <stdio.h>
     #include <string.h>
    
     int main() {
         char str[] = "Hello, World!";
         char *ptr = strchr(str, 'W');
    
         if (ptr) {
             printf("Character found at position: %ld\n", ptr - str); // 输出Character found at position: 7
         } else {
             printf("Character not found\n");
         }
    
         return 0;
     }
    
  6. strstr: 查找子字符串在字符串中的位置

    #include <stdio.h>
     #include <string.h>
    
     int main() {
         char str[] = "Hello, World!";
         char *ptr = strstr(str, "World");
    
         if (ptr) {
             printf("Substring found at position: %ld\n", ptr - str); // 输出Substring found at position: 7
         } else {
             printf("Substring not found\n");
         }
    
         return 0;
     }
    

以上是C语言中多维数组、特殊字符和字符串函数的详细解释和示例。希望对你理解和使用这些概念有所帮助。


原文链接:codingdict.net