利用指针变量输出字符数组中的所有字符 用函数方法表示

40 阅读1分钟
#include <stdio.h>

// 函数功能:使用指针遍历输出字符数组
// 参数说明:arr-字符数组指针,len-数组长度
void print_char_array(const char *arr, int len)
{
    // 参数有效性检查
    if (arr == NULL || len <= 0) {
        printf("Invalid input parameters!\n");
        return;
    }

    // 使用指针遍历数组
    const char *p = arr;       // 初始化指针指向数组第一个元素的地址
    const char *end = arr + len; // 计算结束位置指针,此时并不是尾元素的地址,而是尾元素后面的地址,此地址没权限访问,若访问则会出现段错误,所以下面循环条件是小于号;
    
    printf("Array elements: ");
    while (p < end) {          // 指针比较判断是否到达末尾 
        printf("%c ", *p);     // 输出当前指针指向的字符
        p++;                   // 指针移动到下一个元素
    }
    printf("\n");             // 输出换行
}

int main()
{
    // 测试用例1:普通字符数组
    char arr1[] = {'H', 'e', 'l', 'l', 'o'};
    int len1 = sizeof(arr1) / sizeof(arr1[0]);
    print_char_array(arr1, len1);

    // 测试用例2:空数组
    char arr2[] = {};
    int len2 = sizeof(arr2) / sizeof(arr2[0]);
    print_char_array(arr2, len2);

    // 测试用例3:NULL指针
    print_char_array(NULL, 5);

    return 0;
}