C / C++中的wmemcmp()函数比较两个宽字符。此函数比较str1和str2指向的两个宽字符的前num个宽字符,如果两个字符串相等或不同,则返回零(如果不是)。
句法:
int wmemcmp (const wchar_t* str1, const wchar_t* str2, size_t 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基础课程》。