C . memcmp(memcmp()的描述memcmp()函数允许用户在上述两个字符的字节之间进行比较。根据比较后的结果,它可以返回正整数值或负整数值。该函数也可以返回0。 该函数表示为int memcmp(const void *strng1, const void *strng2, size_t n)。在这个函数中,计算机将检查对象strng1的初始元素的大小是否小于、大于或等于对象strng2的初始n个元素的大小。该函数定义在string.h头文件中。因此,有必要在程序中导入头文件,以便在代码中使用该函数。 声明memcmp()函数声明函数的语法如下: 函数内部的参数strng1:在函数内部声明的指针将指向第一个对象的位置,该对象将与第二个对象进行比较。 Strng2:这个指针指向第二个对象的内存块。 n:它决定了需要比较的数据的字节数。 计算后返回值在比较两个字节的大小后,该函数可以返回三个可能的值范围。 返回值为正整数:这意味着内存块1的大小大于内存块2的大小。 返回值为负整数:这意味着内存块1的大小小于内存块2的大小。 它返回0:这意味着内存块1的大小等于内存块2的大小。 在C程序中实现memcmp()函数下面是描述memcmp()使用的代码。在下面的代码中,我们将比较这两个数组。 输出: ![]() 解释: memcmp()返回的值将为负数。在上面的例子中,我们在第一个块中存储了“memoryblock1”,在第二个块中,我们保存了“sizeofthememoryblock2”。第一组不同的字符是“m”和“s”。s的值大于m的值;因此,它将返回一个负整数。 C语言编程中关于memcmp()函数的重要事实
让我们编写代码来看看上述场景的实现 输出: ![]() 解释: 在上面的例子中,两个数组是相等的。因此,memcmp()将返回0,它将存储在变量中。 让我们实现一个代码,其中第一个对象的值大于第二个对象。 输出: ![]() 解释: 数组中的第二个元素不同。因此,memcmp()将计算哪个元素更大。在本例中,第一个数组中的元素9大于第二个数组中的元素5。因此,它将为结果返回一个正值。 5.假设第一个对象的初始不相同字符小于第二个对象的对应字符。在这种情况下,结果的值将是一个负整数。 让我们看一个memcmp()返回值为负的例子。 输出: ![]() 解释: 数组中的第一个元素是不同的。因此,memcmp()将计算哪个元素更少。在这种情况下,第一个数组中的元素是4,小于第二个数组中的元素是5。因此,它将为结果返回一个负值。 程序员需要选择要执行比较的字符或字节数。它会影响结果,所以程序员必须确保给n赋一个有效值。 6.程序员应该确保输入的字节数总是小于两个对象的大小。否则,可能会返回错误的结果。 输出: ![]() 解释: 在上面的程序中,两个数组完全相同。这是相等的,n的大小大于两个数组的大小。因此,程序返回了错误的结果。 注意:不应该使用memcmp()函数在结构之间进行比较,因为它可能会返回错误的结果,并且是不安全的,因为填充字节中总是有垃圾值的机会。实现自己的memcmp()函数memcmp()函数已经在C库中定义,可以在程序中包含string.h头文件后轻松使用。标准库中定义的函数使用起来是最高效和有效的。因此,不需要定义或创建memcmp()函数。 如果您知道某些条件或场景,则可以降低在对象之间执行比较的复杂性。在这种情况下,可以定义memcmp()函数来提高程序的简单性。 下面是用户定义的memcmp()函数的函数定义。在这个函数中没有考虑到许多场景。因此,如果希望添加更多条件,可以相应地更改代码或使用库函数来执行比较。
下一个话题
#
|