c语言编程 写一个函数,实现两个字符串的比较,即写一个类似于strcmp功能的函数。急求,谢谢!

函数原型为:intstrcompare(char*p1,char*p2)设p1指向字符串s1,p2指向字符串s2。要求:当s1=s2时,返回值为0。当s1不等于s2时,返... 函数原型为: int strcompare(char *p1,char *p2)
设p1指向字符串s1,p2指向字符串s2。要求:当s1=s2时,返回值为0。当s1不等于s2时,返回它们二者的第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二字母不同,“O”与“A”之差为79-65=14);即如果s1>s2,则输出正值;如果s1<s2,则输出负值。
注意:有程序前缀
例如:
输入:
CHINA↙
Chen↙
输出:
-32
前缀代码:
#include <stdio.h>
int strcompare (char *p1,char *p2);
展开
 我来答
3137333
2008-06-17 · TA获得超过463个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:157万
展开全部
#include <stdio.h>
int strcmp(char *s1, char *s2)
{
while((*s1++ == *s2++)&& *s1);
return (*s1 - *s2);
}
void main()
{
char a[10], b[10];
gets(a);
gets(b);
printf("%d\n", strcmp(a, b));
}
花仙木子
2008-06-17 · TA获得超过1393个赞
知道答主
回答量:43
采纳率:0%
帮助的人:50万
展开全部
#include <stdio.h>
#define N 4
int strcomp(char *s1,char *s2)
{ for(;*s1==*s2&&*s1&&*s2;s1++,s2++); /* 找不同的字符 */
return(*s1-*s2); /* 返回字符差值*/
}
void main()
{ char str[N][50];
int i,j;
for(i=0;i<N;i++)
{ printf("String #%d:",i+1);
gets(str[i]);
}
for(j=0,i=1;i<N;i++)
if(strcomp(str[j],str[i])>0) j=i;
printf("Min string is:%s\n",str[j]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pplixin4
2016-12-21 · TA获得超过282个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:144万
展开全部
#include <stdio.h>
int strcompare (char *p1,char *p2);
int main(){
    char p1[100],p2[100];
    int ans;
    gets(p1);
    gets(p2);
    ans = strcompare(p1,p2);
    printf("%d\n",ans);
    return 0;
}
int strcompare (char *p1,char *p2){
    int i;
    for(i=0;p1[i]!='\0' && p2[i]!='\0';i++){
        if(p1[i]==p2[i]) continue;
        else return (p1[i]-p2[i]);
    }
    if(p1[i]=='\0' && p2[i]=='\0') return 0;
    else if(p1[i]=='\0') return -p2[i];
    else return p1[i];
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0a2145cc8
2008-06-18
知道答主
回答量:15
采纳率:100%
帮助的人:5.7万
展开全部
3137333的程序有问题,应是:
int strcmp(char *s1, char *s2)
{
while((*s1==*s2)&&*s1) {s1++;s2++;}
return(*s1-*s2);
}
原来程序返回的是不相同字符的下一字符的差值!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
447587096
2016-12-21 · TA获得超过5047个赞
知道大有可为答主
回答量:2504
采纳率:70%
帮助的人:1187万
展开全部
#include <stdio.h>
int strcompare(char *p1, char *p2);
int main()
{
char s1[100];
char s2[100];
gets(s1);
gets(s2);
printf("%d\n", strcompare(s1, s2));
system("pause");
}
int strcompare(char *p1, char *p2)
{
for (; *p1 == *p2&&*p1; p1++, p2++);
return *p1 - *p2;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式