相同的字符串但结果不同

时间:2019-11-05 18:46:04

标签: c

编译时我得到不同的结果(对于s1 s2(取决于gcc版本),结果为-6400或-25;在memcmp中直接带有数组的结果为-1),但是数组相同。

感谢帮助

#include <stdio.h>
#include <string.h>

int main(void)
{
    printf("vrai %d\n", memcmp("qwertyuioa", "qwertyuioz", 10));
    char s1[] = "qwertyuioa";
    char s2[] = "qwertyuioz";
    printf("vrai s1 s2 %d\n", memcmp(s1, s2, 10));
}

1 个答案:

答案 0 :(得分:3)

来自memcmp(3)

  

如果s1的前n个字节为,则memcmp()函数返回一个整数小于等于大于。发现分别小于,匹配或大于s2的前n个字节。

唯一与返回值有关的是它小于零,等于零或大于零。