我是递归的新手,问的工作是:¿字母数字字符串中有多少个字母?当然使用递归。
所以,这是我的代码:
#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。
答案 0 :(得分:4)
注意警告。
如果l>0
和该字符不在'A'-'z'
范围内,则该函数会返回垃圾。