C语言:编写函数MyStrCmp并用相应主函数进行测试?

C语言:编写函数MyStrCmp并用相应主函数进行测试


婷婷同学_
浏览 854回答 3
3回答

函数式编程

123456789101112131415161718192021222324252627282930313233343536373839#include<stdio.h>#include<string.h>int&nbsp;MyStrCmp(&nbsp;char&nbsp;*s1,char&nbsp;*s2&nbsp;);int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;s1[30],&nbsp;s2[30];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gets(s1);&nbsp;&nbsp;&nbsp;&nbsp;gets(s2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",&nbsp;MyStrCmp(s1,&nbsp;s2));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}&nbsp;int&nbsp;MyStrCmp(char&nbsp;*&nbsp;s1,&nbsp;char&nbsp;*&nbsp;s2){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;flag&nbsp;=&nbsp;0;//0表示相等,1表示s1大于s2,-1表示s1小于s2&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;minLength&nbsp;=&nbsp;0;&nbsp;//较短串的长度&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minLength&nbsp;=&nbsp;strlen(s1)&nbsp;>=&nbsp;strlen(s2)&nbsp;?&nbsp;strlen(s1)&nbsp;:&nbsp;strlen(s2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;minLength;&nbsp;i++)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(s1[i]&nbsp;!=&nbsp;s2[i])&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(s1[i]&nbsp;>&nbsp;s2[i])&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;-1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;flag;}

繁花如伊

BOOL&nbsp;MyStrCmp(char* a,char* b){return a[0]>=b[0];}

有只小跳蛙

#include<stdio.h>#define&nbsp;N 100int MyStrCmp(char * s1, char * s2){int ret, i=0;while(s1[i]!='\0' && s2[i]!='\0' && s1[i]==s2[i])i++;if(s1[i]==0 && s2[i]==0)ret=0; //相等else if(s1[i]==0)ret=-1; //串s1小于串s2else if(s2[i]==0)ret=1; //串s1大于串s2else if(s1[i]>s2[i])ret=1; //串s1大于串s2elseret=-1; //串s1小于串s2return ret;}int main(){char s1[N], s2[N];gets(s1);gets(s2);printf("%s\n%s\n",s1,s2);printf("%d\n", MyStrCmp(s1, s2));return 0;}
打开App,查看更多内容
随时随地看视频慕课网APP