#include
#include
void main() /*主函数*/
{ char *s1="AbDeG"; /*声明一个字符串,并使s1指向字符串的首字母的地址*/
char *s2="Abdeg"; /*声明另一个字符串,并使s2指向字符串的首字母的地址*/
s1+=2;s2+=2; /*使指针s1和指针s2,分别向后移动两个字符,这样分别指向D和d*/
printf("%d\n",strcmp(s1,s2));/*strcom(s1,s2)是字符串比较函数*/
/*当s1=s2时,函数值为0;当s1>s2时,函数值为一个正整数,函数值为一个正整数;*/
/*当s1
/*的ASCII编码小于小写的英语字母的ASCII编辑,既D的ASCII编码小于d的ASCII编码,*/
/*所以输出一个负整数。
}
输出:-1
s1 += 2表示将字符串s1的首地址向后移两个单位,相当于截去了前两个字符,因为s1是指针。
s2 += 2同理。
故 执行以上两句后
s1 = "DeG";
s2 = "dEg";
strcmp(s1,s2);是比较两个字符串的大小,即对应的ASCIi码的大小,小写字母的ASCII大于大写字母,所以 s1 < s2 ,strcmp(s1,s2)返回-1。如果s1 > s2 ,返回1;如果s1 == s2,返回0。
输出是-1
strcmp函数是 当s1
s1+=2是DeG 也就是68 101 71
s2+=2是dEg 也就是 100 69 103
显然 s1 小于 s2
负数!