首页 > 试题广场 >

下面代码实现两个字符串的比较,若想要实现strcmp函数的功

[单选题]

下面代码实现两个字符串的比较,若想要实现strcmp函数的功能,则补全下面下划线部分内容代码完成字符串比较功能()

int strCompare(char *s, char *t) {
    char *p = s, *q = t;
    while (*p == *q) {
        if (*p == '\0')
            return 0;
        p++;
        q++;
    }
    return _____;
}
  • *s - *t

  • s - t
  • *p - *q
  • p - q
是取指针对应地址里面的内存的差值,*是取指针的对应地址里面的内容值,所以只能选带星的选项,而:
*s - *t 是返回两个字符串第一个字符的ASCII码的差值
*p - *q 是返回两个字符串第一个不相同字符的ASCII码差值
所以选 *p - *q
发表于 2022-04-07 09:02:13 回复(0)
在while里面比较完相等的前缀之后,剩下不一样的部分用*p-*q来比较。
发表于 2022-01-16 10:22:14 回复(0)
strcmp函数:
字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。//摘自C语言中文网
主要说A,选A的结果就是返回两个字符串第一个字符的ASCII码的差值,C选项(*p - *q)就是返回两个字符串第一个不相同字符的ASCII码差值。所以选C。
发表于 2022-03-06 23:57:16 回复(0)
strcmp为字符串比较函数
发表于 2022-03-10 03:11:45 回复(0)
指针是C语言的吧,这不是Java联系吗...
发表于 2022-09-02 20:50:29 回复(0)
比较方式其实就是ASSIC码相减
发表于 2022-09-21 09:06:56 回复(0)