MST

星途 面试题库

面试题:C语言指针的指针与函数结合应用

编写一个函数,该函数接收一个指针的指针,这个指针的指针指向一个字符串数组(每个字符串以''结尾),函数的功能是统计所有字符串中字符'a'出现的总次数,并返回该次数。例如,传入的字符串数组为{"apple", "banana", "cherry"},函数应返回3。
12.3万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>
#include <string.h>

int countA(char **strArray) {
    int count = 0;
    while (*strArray != NULL) {
        char *str = *strArray;
        while (*str != '\0') {
            if (*str == 'a') {
                count++;
            }
            str++;
        }
        strArray++;
    }
    return count;
}

你可以这样调用这个函数:

int main() {
    char *arr[] = {"apple", "banana", "cherry", NULL};
    int result = countA(arr);
    printf("字符 'a' 出现的总次数: %d\n", result);
    return 0;
}

上述代码实现了一个countA函数,用于统计字符串数组中所有字符串里字符a出现的总次数。countA函数接受一个指向字符串指针的指针作为参数。在main函数中,定义了一个字符串数组并传递给countA函数,然后输出统计结果。

代码说明

  1. countA函数:
    • 初始化count变量用于记录字符a出现的总次数。
    • 使用while循环遍历字符串数组,当遇到NULL指针时停止。
    • 对于每个字符串,使用内层while循环遍历字符串中的每个字符,检查是否为字符a,如果是则count加1。
    • 遍历完一个字符串后,移动到下一个字符串指针。
  2. main函数:
    • 定义一个字符串数组arr,并在末尾添加一个NULL指针作为数组结束标志。
    • 调用countA函数并传递arr,将返回的统计结果存储在result中。
    • 输出统计结果。