这个程序是为了实现strcmp的功能,若相同,输出0;若不同,则将字母不同的那一位的字母相减,输出值。
#include<stdio.h>
#include<string.h>
void main()
{
char a[100],b[100];
char *p1,*p2;
int strcmp(char *p1,char *p2);
int result;
int i,ilength;
printf("please input one string:");
scanf("%s",a);
printf("\n");
printf("please input another string:");
scanf("%s",b);
ilength=strlen(a)>strlen(b)?strlen(a):strlen(b);
for(i=0;i<ilength;i++) /*判断两个字符数组是否完全相等,若相等则返回值为0,否则执行函数*/
{
*p1=*(p1+i);
*p2=*(p2+i);
if(*p1==*p2=='\0')
result=0;
else
result=strcmp(p1,p2);
}
printf("the result is %d",result);
}
int strcmp(char *p1,char *p2)
{
int result;
if(*p1!=*p2) /*当比较的两个字母不同时,相减。*/
result=*p1-*p2;
else
strcmp(*(p1+1),*(p2+1)); /*当两个字母相同时,执行递归函数。*/
return(result);
}
#include<stdio.h>
#include<string.h>
void main()
{
char a[100],b[100];
char *p1,*p2;
int strcmp(char *p1,char *p2);
int result;
int i,ilength;
printf("please input one string:");
scanf("%s",a);
printf("\n");
printf("please input another string:");
scanf("%s",b);
ilength=strlen(a)>strlen(b)?strlen(a):strlen(b);
for(i=0;i<ilength;i++) /*判断两个字符数组是否完全相等,若相等则返回值为0,否则执行函数*/
{
*p1=*(p1+i);
*p2=*(p2+i);
if(*p1==*p2=='\0')
result=0;
else
result=strcmp(p1,p2);
}
printf("the result is %d",result);
}
int strcmp(char *p1,char *p2)
{
int result;
if(*p1!=*p2) /*当比较的两个字母不同时,相减。*/
result=*p1-*p2;
else
strcmp(*(p1+1),*(p2+1)); /*当两个字母相同时,执行递归函数。*/
return(result);
}