发布网友 发布时间:2022-04-23 06:15
共5个回答
热心网友 时间:2023-10-03 03:42
下次这些问题自己可以检验的,就别问了,多动手!
给出下面的例子;
#include<stdio.h>
#include<string.h>
int main()
{char a[5]="look";
char b[7]="lookly";
if(strcmp(a,b)>0)
printf("%s>%s\n",a,b);
else
printf("%s<%s\n",a,b);
return 0;
}
热心网友 时间:2023-10-03 03:42
它是从第一个字母开始比较的,就是逐个比较字母呗,直到出现结果为止。这个比较与字符串的长度没有必然关系的。例如:love>abandon.
它的原理可以用以下程序解释:
#include<stdio.h>
void main()
{
int i=0;
int c,d;
char a[100],b[100];
printf("输入第一串字符\n");
gets(a);
printf("输入第二串字符\n");
gets(b);
while(a[i]!='\0'&&b[i]!='\0')
{
c=a[i];
d=b[i];
if(c>d) {printf("%d\n",c-d);
break;}
if(c<d) {printf("%d\n",-(d-c));
break;}
i++; }
}
热心网友 时间:2023-10-03 03:43
两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止,如”abc"和“ad"比,先比较'a'和'a',一样大小,然后比较'b'和'd',因为'b'<'d'所以返回-1;
热心网友 时间:2023-10-03 03:43
两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
http://ke.baidu.com/view/1026924.htm
兄弟可以去百科看一下这个函数的源代码,有助于加深理解。
热心网友 时间:2023-10-03 03:42
下次这些问题自己可以检验的,就别问了,多动手!
给出下面的例子;
#include<stdio.h>
#include<string.h>
int main()
{char a[5]="look";
char b[7]="lookly";
if(strcmp(a,b)>0)
printf("%s>%s\n",a,b);
else
printf("%s<%s\n",a,b);
return 0;
}
热心网友 时间:2023-10-03 03:44
#define debug
/*
this routine is made by elapser ;
*/
int elapser_strcmp (char* pstra ,char* pstrb)
{
if (pstra == 0 || pstrb == 0)
return 0 ;
while (*pstra != '\0' && *pstrb != '\0' && *pstra == *pstrb)
{
pstra++ ;
pstrb++ ;
}
return *pstra - *pstrb ;
}
#ifdef debug
int main ()
{
int elapser_strcmp (char* pstra ,char* pstrb) ;
char* pstra = "abcdefg" ;
char* pstrb = "abcd" ;
char* pstrc = "abcdefg" ;
char* pstrd = "abcdgg" ;
printf ("stra ? strb is %d\n" ,elapser_strcmp (pstra ,pstrb)) ;
printf ("stra ? strc is %d\n" ,elapser_strcmp (pstra ,pstrc)) ;
printf ("stra ? strd is %d\n" ,elapser_strcmp (pstra ,pstrd)) ;
return 0 ;
}
#endif
热心网友 时间:2023-10-03 03:42
它是从第一个字母开始比较的,就是逐个比较字母呗,直到出现结果为止。这个比较与字符串的长度没有必然关系的。例如:love>abandon.
它的原理可以用以下程序解释:
#include<stdio.h>
void main()
{
int i=0;
int c,d;
char a[100],b[100];
printf("输入第一串字符\n");
gets(a);
printf("输入第二串字符\n");
gets(b);
while(a[i]!='\0'&&b[i]!='\0')
{
c=a[i];
d=b[i];
if(c>d) {printf("%d\n",c-d);
break;}
if(c<d) {printf("%d\n",-(d-c));
break;}
i++; }
}
热心网友 时间:2023-10-03 03:43
两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止,如”abc"和“ad"比,先比较'a'和'a',一样大小,然后比较'b'和'd',因为'b'<'d'所以返回-1;
热心网友 时间:2023-10-03 03:43
两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
http://ke.baidu.com/view/1026924.htm
兄弟可以去百科看一下这个函数的源代码,有助于加深理解。
热心网友 时间:2023-10-03 03:44
#define debug
/*
this routine is made by elapser ;
*/
int elapser_strcmp (char* pstra ,char* pstrb)
{
if (pstra == 0 || pstrb == 0)
return 0 ;
while (*pstra != '\0' && *pstrb != '\0' && *pstra == *pstrb)
{
pstra++ ;
pstrb++ ;
}
return *pstra - *pstrb ;
}
#ifdef debug
int main ()
{
int elapser_strcmp (char* pstra ,char* pstrb) ;
char* pstra = "abcdefg" ;
char* pstrb = "abcd" ;
char* pstrc = "abcdefg" ;
char* pstrd = "abcdgg" ;
printf ("stra ? strb is %d\n" ,elapser_strcmp (pstra ,pstrb)) ;
printf ("stra ? strc is %d\n" ,elapser_strcmp (pstra ,pstrc)) ;
printf ("stra ? strd is %d\n" ,elapser_strcmp (pstra ,pstrd)) ;
return 0 ;
}
#endif