用一个函数实现两个字符串的比较

、用一个函数实现两个字符串的比较,即自己写一个比较函数(strcmp),函数原型为:intstrcmp(char*p1,char*p2);设p1指向字符串s1,p2指向字... 、用一个函数实现两个字符串的比较,即自己写一个比较函数(strcmp),函数原型为:int strcmp(char *p1,char *p2);
设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为0;若s1<>s2,则返回它们二者第一个不相同字符的ASCII码差值;若s1>s2,则输出正值;若s1<s2则输出负值
两个字符串s1、s2由main函数输入

#include<stdio.h>
#include<string.h>
int main()
{
int strcmp(char *p1,char *p2);
char a[10],b[10];
printf("please enter number\n");
scanf("%s",a);
scanf("%s",b);
char *p1=a,*p2=b;
strcmp(a,b);
return 0;
}
int strcmp(char *p1,char *p2)
{
int i;
if (strcmp(*p1,*p2)=0)
printf("0\n");
else if (strcmp(*p1,*p2)>0)
{
for(i=0;i<10;)
{ if((*p1+i)==(*p2+i))
i++;
else
if((*p1+i)!=(*p2+i))
printf("%d",*p1-*p2);
}
}
else if (strcmp(*p1,*p2)<0)
{
for(i=0;i<10;)
{ if((*p1+i)==(*p2+i))
i++;
else
if((*p1+i)!=(*p2+i))
printf("%d",*p2-*p1);
}
}
return 0;
}

I:\Cp4.cpp(17) : error C2665: 'strcmp' : none of the 2 overloads can convert parameter 1 from type 'char'
I:\Cp4.cpp(19) : error C2665: 'strcmp' : none of the 2 overloads can convert parameter 1 from type 'char'
I:\Cp4.cpp(29) : error C2665: 'strcmp' : none of the 2 overloads can convert parameter 1 from type 'char'
展开
 我来答
chinaray79
2012-06-13 · TA获得超过178个赞
知道答主
回答量:113
采纳率:0%
帮助的人:112万
展开全部
strcmp(*p1,*p2)中, *p1及*p2代表的是字符, 而不是字符串, 所以报错.

里面错误的地方比较多, 包含有如下部分:

请注意(1): 在main函数中char *p1=a,*p2=b; 这句有太大的问题, 因为p1及p2都没有具体的地址, 就给它指定值. 程序运行将出错.
请注意(2):在main()函数里面的那句:int strcmp(char *p1,char *p2);应移动到int main()前面去.
请注意(3): 在系统中有函数:
extern int strcmp(const char *s1,const char * s2);
而你定义了函数: int strcmp(char *p1,char *p2), 两者过于接近. 需要你更改函数定义才好.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式