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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言编程 写一个函数,实现两个字符串的比较,即写一个类似于strcmp功能的函数。急求,谢谢!相关的知识,希望对你有一定的参考价值。

函数原型为: 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);

#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));
参考技术A #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]);
参考技术B #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];

参考技术C 3137333的程序有问题,应是:
int strcmp(char *s1, char *s2)

while((*s1==*s2)&&*s1) s1++;s2++;
return(*s1-*s2);

原来程序返回的是不相同字符的下一字符的差值!
参考技术D #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;

本回答被提问者采纳

写一个strcmp函数,实现两个字符串的比较。 求注释。ORZ!

参考技术A 函数strcmp是这样对两个字符串进行比较的:对两个字符串依次从头逐位比较,直到两个字符串有某一位不同,然后比较其ASCII码。如果两个字符串比到最后都一样,则比较其长度。
定义一个变量i就是要进行循环比较的。
其实可以在strcmp函数中再加一个参数i,用来接收字符串的长度,这样就可以比较任意长度的字符串了

以上是关于c语言编程 写一个函数,实现两个字符串的比较,即写一个类似于strcmp功能的函数。急求,谢谢!的主要内容,如果未能解决你的问题,请参考以下文章

写一些函数,实现两个字符串的比较,即自己写一个strcmp函数,函数原型为int strcmp(c

c语言中有没有比较简单的算法来判断两个集合有交集

用java 、C++、 C 或者VB 中任何一种语言实现两个函数encode()和decode(),分别实现对字符串的变换和复原.

编写一个C语言函数,比较两个字符串的大小

C语言中:strcmp函数如何使用?

C++ 写一个函数,实现两个字符串的比较,即自己写一个strcmp函数