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); 展开
设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); 展开
8个回答
展开全部
#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]);
}
#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]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
3137333的程序有问题,应是:
int strcmp(char *s1, char *s2)
{
while((*s1==*s2)&&*s1) {s1++;s2++;}
return(*s1-*s2);
}
原来程序返回的是不相同字符的下一字符的差值!
int strcmp(char *s1, char *s2)
{
while((*s1==*s2)&&*s1) {s1++;s2++;}
return(*s1-*s2);
}
原来程序返回的是不相同字符的下一字符的差值!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询