gpt4 book ai didi

使用递归函数检查字符在字符串中出现的次数

转载 作者:太空宇宙 更新时间:2023-11-04 08:18:59 25 4
gpt4 key购买 nike

因此,我必须写下一个递归函数来检查字符 (c) 在字符串(数组)中出现的次数:请注意该函数必须是递归的。老实说,这是我开始以来不得不面对的最困难的事情,所以这花了很长时间:|这是代码(语言是 C):

#include <stdio.h>
#include <time.h>
#define MAX 5

int charOccur (char [], int);

int main() {

char array[MAX+1]={'a', 'x', 'c', 'f', 'r'};

charOccur (array, MAX);

return 0;
}

int charOccur (char arr[], int dim){
int i, flag=0;

if (arr[0] == 'c'){
flag = 1;
return flag;
} else {
for (i=1; i<dim; i++){
if (arr[i] == 'c'){
flag++;
charOccur (arr, dim);
}
} return flag;
}
}

最佳答案

int occur(char *s, char c)
{
if (!*s) // if (*s == '\0')
return (0); // s is empty, do the character we're looking for does not exist
else if (*s == c)
return (1 + occur(s + 1, c));
else
return (occur(s + 1, c));
}

在第二种情况下,我们找到了我们的角色,所以我们计算 1 加上递归函数中输入的其余部分。

在第三种情况下,s指向的字符既不是'\0'也不是c,所以我们一直往前走,直到到达字符串的末尾。

在这两种情况下,我们都使用指针算术 (s + 1) 来更改指向的字符。

关于使用递归函数检查字符在字符串中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34139514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com