사용자가 지정한 문자 수를 계산하는 재귀 알고리즘을 작성하려고합니다. 하지만, 나는 두 가지 경우에 갇혀있다. 첫째, 결과로 2
을 얻어야한다고 생각합니다. 둘째, 제한 키가 없으면 (예 : 사용자가 z
으로 지정한 제한 문자) 여기에서 문자를 마지막 문자까지 스캔 할 수있는 방법 g
? 문제는 나를 위해 약간 복잡합니다. 당신의 충고와 아이디어가 필요합니다. 모든 감사의 답변을 주셔서 감사합니다.재귀가 지정된 문자 수
예를 들어 문자열은 다음과 같습니다 how are you i am testing
또 다른 예 : 재귀 함수와
#include <stdio.h>
int lettercount(char* str, char key, char limit);
int main(){
char test[]="how are you i am testing";
int num;
num=lettercount(test,'a','t');
printf("%d",num);
return 0;
}
int lettercount(char* str, char key, char limit)
{
int count = 0;
if(str[0] == limit)
{
return 0;
}
else if(str[0] == key)
{
lettercount(&str[1], key, limit);
count++;
}
else
lettercount(&str[1], key, limit);
return count;
}
str [0]이 'limit'과 같은지 확인하는 것 외에도 NUL 터미네이터 ''\ 0 ''인지 확인해야합니다. 또한'lettercount' 함수에서'count'를 리턴하지만, 재귀 적으로 함수를 호출 할 때 리턴 값을 무시합니다. – user3386109
음, 네가 NULL에 대해 옳다. 나는 카운트를 반환? @ user3386109 –
함수의 마지막 줄은'return count;'입니다. – user3386109