s1和s2已正确确定义并分别指向两个字符串。若要求:当s1所指字符串大于s2所指字符串时,执行语句S;则以下选项中正确的是( )。
A.if(s1 > s2) S;
B.if(strcmp(s1,s2)) S;
C.if(strcmp(s2,s1)>0) S;
D.if(stremp(s1,s2)>0) S;
参考答案:D
解析: 字符串的比较不能直接用关系运算符,可用字符串比较函数strcmp(char. s1, char *s2)实现,其比较规则是对两个字符串自左至右逐个字符按其对应的ASCII码值进行比较,直到出现不同的字符或遇到'\0'为止。若对应字符都相同,则两字符串相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准。比较的结果由函数值带回。当s1<s2时,返回负数;当s1=s2时,返回0;当s1>s2时,返回正数。所以在此题中要使得s1所指串大于s2所指串,就必定使得strcmp(s1,s2)>0。