c语言编写函数实现两个字符串比较(其功能与标准函数strcmp一样)函数原型int mystrcpy(char*s1,char*s2)

其中形参s1,s2分别指向两个字符串。如果s1=s2,则返回值为0;如果s1不等于s2则返回它们二者首次遇到的不同字符的ASCII码的差值。如果s1》s2,则返回正值如果s1《s2,则返回负值

以下代码就可解决此问题:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int mystrcmp(const char *s1,const char *s2){
    while(*s1 && *s2 && !(*s1-*s2))
        s1++,s2++;
    return *s1-*s2;
}
int main(void){//测试一下
    char a[]="12378",b[]="1233467890",f;
    if((f=mystrcmp(a,b))>0)
        printf("a>b\n");
    else if(f<0)
        printf("a<b\n");
    else printf("a=b\n");
    printf("\n");
    return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-02
int mystrcmp(char *s1, char *s2)
{
    while(*s1 == *s2) {
if(*s1 == '\0')
return 0;
s1++;
s2++;
}

    return *s1-*s2;
}

本回答被网友采纳

...个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为
最简实现:\/*严格来说这里原型应该是int strcmp(const cahr*, const char*);更好一些。*\/ int strcmp (char* p1, char* p2){ while(*p1 && *p2 && *p1 == *p2){ ++p1;++p2;} return *p1 - *p2;} 另外,LS错误:C\/C++中不等号是!=,不是<>;此外,不符合LZ给的题意(实现...

1. 编写一个strcmp函数实现两个字符串的比较:
int stringcmp(char *s1,char *s2){ while(*s1||*s2) \/\/如果S1和S2比较完毕 (‘\\\\0’)跳出循环;{ if(*s1-*s2) \/\/判断S1和S2对应的字符是不是不同;return *s1-*s2; \/\/如果不同,返回S1和S2的ASCII之差;else \/\/ 如果相同,让指针指向S1和S2的下一个字符比较 { s2++;s1++...

...实现两个字符串的比较。即自己写一个strcmp函数:strcmp(s1,s2) 如...
include<stdio.h> include<string.h> int main(){ char a[100];char b[100];int c;gets(a);gets(b);c=strcmp(a,b);printf("%d",c);return 0;} 这个行吗?刚刚写的。

编写函数strcmp(),用主函数调用实现两个字符串的比较。 int strcmp(cha...
include<string.h> int strcmp(char s1[ ],char s2[ ]){ assert(strlen(s1)!=0&&strlen(s2)!=0);char *p1,*p2;p1=s1;p2=s2;while(*p1!=NULL&&*p2!=NULL){ if(*p1>*p2)return 1;else if(*p1<*p2)return -1;else { p1++;p2++;} } if(*p1==NULL&&*p2!=NULL) \/\/串2...

用函数实现对两个字符串str1和str2的比较:strcmp (str1,str2)
int mystrcmp(char str1[],char str2[])\/\/比较字符串大小,若str1大,输出1,若相等,输出0,否则输出-1 { int i=0;while(str1[i]!=0&&str2[i]!=0&&str1[i]==str2[i]){ i++;} if(str1[i]>str2[i])return 1;if(str1[i]<str2[i])return -1;if(str1[i]==str2[...

有两个字符串,利用函数实现两个字符串的链接,两个字符串比较大小,计 ...
*str) { if(str==NULL) return 0; int len = 0; for(; *str++ != '\\0'; ) { len++; } return len; }字符串复制 char * mystrcpy (char * dst, char * src) { char * cp = dst; while( *cp++ = *src++ ) ; return( dst ); }自己写主函数 调用一下就行了。

有两个字符串,利用函数实现两个字符串的链接,两个字符串比较大小,计 ...
else if ( ret > 0 ) ret = 1 ; return( ret ); } int myStrlen(const char *str) {if(str==NULL) return 0;int len = 0;for(; *str++ != '\\0';

c语言中比较两个字符串的大小
在C语言中比较字符串大小,可以使用库函数strcmp,也可以自己编写比较函数。1、使用库函数。需要包含头文件string.h。声明为:int strcmp(const char *s1, const char *s2);会根据字典序比较s1和s2, 如果二者相等,则返回0;如果s1较小则返回-1;如果s1较大则返回1。比如 strcmp("123", "123")...

...字符串str1和str2的大小。要求不使用库函数strcmp.
实际上这个题目就是要手动实现strcmp这个函数的功能,在面试中可能会遇到类似的问题(strcpy等)include <stdio.h>\/\/ 当s1 > s2 的时候,会返回正数\/\/ 当s1 < s2 的时候,会返回负数\/\/ 当s1 == s2 的时候,会返回 0int Mystrcmp(char *s1, char *s2){if (s1 == NULL || s2 == NULL...

关于用函数strcmp比较输入的两个字符串的问题
这个程序完全没必要用指针啊。除非是要你自己实现strcmp函数,不然用指针的话完全是多此一举。include <iostream> using namespace std;int mystrcmp(char *a,char *b){ for(;*a && *b && *a==*b;a++,b++);if(*a>*b) return 1;else if(*a<*b) return -1;return 0;} void main...

相似回答