|
#include <stdio.h>
#include <ctype.h>
main()
{
int strcmp();
int numcmp();
char s1[80],s2[80];
gets(s1);
gets(s2);
if(isalpha(*s1))
check(s1,s2,strcmp);
else
check(s1,s2,numcmp);
}
check(a,b,cmp)
char *a,*b;
int (*cmp)();
{
printf("testing for equality\n");
if(!(*cmp)(a,b) printf("equal");
else printf("not equal");
)
numcmp(a,b)
char *a,*b;
{
if(atoi(a)==atoi(b)) return 0;
else return 1;
}
_________________________________________________________________________
由于上面的程序是Turbo c写的我又没有该编译程序,就只能凭空着讨个指教!问题问的再菜也请耐心教我!!!
以上程序中有一库函数isalpha(),我查了了一下相关资料:
调用方式:int isalpha(int ch)
说明:isalpha()函数的原型在ctype.h中。如果ch是字母表中的字母(大写或小写),则返回非零;否则返回零。
可见其中参数是int型,而以上程序中*s1是什么东西?不明白!按照资料中的函数此处不是应该用循环对数组s1中的元素一个个的检查吗?怎么用isalpha(*s1)呢?*sl是什么??? |
|