问题
单项选择题
请读程序:
#include <stdio.h>
#include <string.h>
main()
char *s1="AbCdEf", *s2="aB";
s1++; s2++;
printf("%d\n",strcmp(s1,s2));
上面程序的输出结果是( )。
A) 正数
B) 负数
C) 零
D) 不确定的值
答案
参考答案:A
解析: 本题考查字符串比较函数strcmp()的应用。strcmp(s1,s2)是中比较函数,当s1> s2时返回值为正数,当s1<s2时返回值为负数,当s1=s2时返回值为零。
本题中s1,s2分别表示两个串中第一个字符的地址,s1++和s2++是将指针指向串的第二个字符,指针变量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指针变量s2指向的是字符'B'的地址。而在字符串比较中,宁符串大小的确定是各个字符串相应位置字符的ASCII码值的大小决定的,字符'B'的ASCII码值为66,字符“b”的ASCII码值为98,所以s1>s2,返回值为正数。