编写一个自己的库函数strcmp(),用来实现实现两个字符串的比较
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写一个自己的库函数strcmp(),用来实现实现两个字符串的比较相关的知识,希望对你有一定的参考价值。
编写一个自己的库函数strcmp(),用来实现实现两个字符串的比较,函数原型为:int strcmp (char * p1, char * p2);
设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为 0, 如果sl≠s2,则返回它们二者第一个不相同字符的ASCII码差值(如“BOY”与“BAD”的第二个字母不相同,“O”与“A”之差为79—65=14);如果sl>s2,则输出正值;如果sl<s2则输出负值。
不要c++
for( ; *p1 == *p2; p1++,p2++)
if(*p1 == '\0')
return 0;
return *p1 - *p2;
写一个函数,实现两个字符串的比较,即自己编写strcmp函数
strcmp(char *s1,char *s2),如果s1=s2,返回值0,若s1<>s2,返回它们二者第一个不同字符的ASCII码差值,如果s1>s2,则输出正数,返回输出负数。如”this”与”the”,第一个不同的字符是”i”与”e”之差为4,返回值4。
#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]);
参考技术A 3137333的程序有问题,应是:
int strcmp(char *s1, char *s2)
while((*s1==*s2)&&*s1) s1++;s2++;
return(*s1-*s2);
原来程序返回的是不相同字符的下一字符的差值! 参考技术B #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));
本回答被提问者和网友采纳 参考技术C strcmp源码
int __cdecl strcmp (const char *src, const char *dst)
int ret = 0 ;
while(!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
++src;
++dst;
if ( ret < 0 )
ret = -1 ;
else if ( ret > 0 )
ret = 1 ;
return( ret );
参考技术D int
*strcmp(const
char
*s1,
const
char
*s2)
for(;
*s1==*s2;
s1++,
s2++)
if(*s1
==
'\0')
return
0;
return
((unsigned
*)*s1
<
(unsigned
*)*2
?
-1
:
+1);
以上是关于编写一个自己的库函数strcmp(),用来实现实现两个字符串的比较的主要内容,如果未能解决你的问题,请参考以下文章
用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为 :int strcmp
写一些函数,实现两个字符串的比较,即自己写一个strcmp函数,函数原型为int strcmp(c