递归性。字母数字字母串

时间:2014-11-25 00:49:46

标签: c recursion

我是递归的新手,问的工作是:¿字母数字字符串中有多少个字母?当然使用递归。

所以,这是我的代码:

#include <stdio.h>
#include <string.h>

int countl(char*,int,int);

int main(void){
    int n=0,resultado,l;
    char string[20];
    printf("Input a string:\n");
    scanf("%s",string);
    l = strlen(string);
    resultado = countl(string,n,l);
    printf("Ammount of letters: %d",resultado);
}

int countl(char *string,int n,int l){
    if(l>0){
            if(string[n] >= 'A' && string[n] <= 'z'){
                return 1 + countl(string,n+1,l-1);
            }
    }
    else
        return 0;
}

忘了说即使输入为'1',结果也是49。

1 个答案:

答案 0 :(得分:4)

注意警告。

如果l>0 该字符不在'A'-'z'范围内,则该函数会返回垃圾。