📜  C / C++中的wmemcmp()函数

📅  最后修改于: 2021-05-25 22:14:15             🧑  作者: Mango

C / C++中的wmemcmp()函数比较两个宽字符。此函数比较str1str2指向的两个宽字符的前num个宽字符,如果两个字符串相等或不同,则返回零(如果不是)。

句法:

参数:

  • str1:指定指向第一个字符串的指针。
  • str2:指定指向第二个字符串的指针。
  • num:指定要比较的字符数。

返回值:该函数返回三个不同的值,这些值定义了两个字符串之间的关系:

  • :两个字符串相等时。
  • 正值:两个字符串中第一个不匹配的宽字符在str1中的频率高于在str2中的频率。
  • 负值:当两个字符串中都不匹配的第一个宽字符在str1中的频率低于在str2中的频率

下面的程序说明了上述函数:

程序1:

// C++ program to illustrate
// wmemcmp() function
  
#include 
using namespace std;
  
int main()
{
    // initialize two strings
    wchar_t str1[] = L"geekforgeeks";
    ;
    wchar_t str2[] = L"geekforgeeks";
  
    // this function will compare these two strings
    // till 12 characters, if there would have been
    // more than 12 characters, it will compare
    // even more than the length of the strings
    int print = wmemcmp(str1, str2, 12);
  
    // print if it's equal or not equal( greater or smaller)
    wprintf(L"wmemcmp comparison: %ls\n",
            print ? L"not equal" : L"equal");
  
    return 0;
}
输出:
wmemcmp comparison: equal

程式2:

// C++ program to illustrate
// wmemcmp() function
// Comparing two strings with the same type of function
// wcsncmp() and wmemcmp()
#include 
using namespace std;
  
int main()
{
    // initialize two strings
    wchar_t str1[] = L"geekforgeeks";
    ;
    wchar_t str2[] = L"geekforgeeks";
  
    // wcsncmp() function compare characters
    // until the null character is encountered ('\0')
    int first = wcsncmp(str1, str2, 20);
  
    // but wmemcmp() function compares 20 characters
    // even after encountering null character
    int second = wmemcmp(str1, str2, 20);
  
    // print if it's equal or not equal( greater or smaller)
    wprintf(L"wcsncmp comparison: %ls\n",
            first ? L"not equal" : L"equal");
    wprintf(L"wmemcmp comparison: %ls\n",
            second ? L"not equal" : L"equal");
  
    return 0;
}
输出:
wcsncmp comparison: equal
wmemcmp comparison: not equal
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。