南阳镇平县怎么样:C++里面 strcmp(c1,c2) 这样改表什么? strcmp有什么作用的呀?

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 23:31:37
C++里面 strcmp(c1,c2) 这样改表什么? strcmp有什么作用的呀?

请解释一下 好吗.谢谢您了~~~~~~~~~~~~~~~
#include<iostream.h>
#include<string.h>
void main()
{
char c1[10]="Germany";
char c2[10]="Greenland";
cout<<strcmp(c1,c2)<<endl;

那么您看看,这样返回什么?

比较字符串c1和c2。
当c1<c2时,返回值<0
当c1=c2时,返回值=0
当c1>c2时,返回值>0

一个对2个字符串比较的函数,他会根据ASC码的值来比较字符串首个字符的大小,当c1<c2,就会返回-1,当c1=c2会返回0,当c1>c2会返回1

你的那段代码的比较结果是1

返回-1

呵呵,上回好像也是你提问这个问题啊

返回-1
strcmp("Germany","Greenland");
这里比较的是ASCII码
要知道这个比较,得先知道小写的字母要比大写的字母ASCII要大,再是26个字母中,同是大(小)写的字母,靠后的比较大. 就是说'a'>'A'; 'b'>'a'; 'B'>'A'; 'b'>'B'

看看以我的理解,模拟strcmp函数功能写的代码
#include <assert.h>
int _strcmp(const char* s1, const char* s2)
{
assert(s1 != NULL && s2!= NULL);
while(*s1 != '\0' && *s2 != '\0' && *(s1++) == *(s2++));
if(*s1 > *s2)
return 1;
else if(*s1 < *s2)
return -1;
return 0;
}