我正在尝试为我正在用 C 编写的更大的作业编写一个简单的函数。该函数的目的是确定字符串是否只包含小写或大写字母,并返回字符串的大小(\0 的索引)如果它通过了测试,如果没有通过,则为-1。这是我写的:
#include <stdio.h>
int only_letters(char string[], int index);
void main() {
char string1[]="Hi my name is pete";
char string2[]="thisissupposedtobevalid";
printf("the first string is %d and the second one is %d\n",only_letters(string1,0),only_letters(string2,0));
}
int only_letters(char string[], int index){
if(!string[index]) return index;
if(string[index]<'a'||string[index]>'Z') return -1;
only_letters(string, index+1);
}
当我运行它时,第一个字符串(应该是无效的)和第二个字符串都得到-1,这应该是有效的。
(我们不允许使用循环,我们还有十几个其他限制,所以请不要提供更简单或更简单的解决方案,我知道它们存在,但我试图理解为什么我写的东西不起作用。)