C++ 中的宽字符和库函数
在本节中,我们将看到什么是C++中的宽字符。我们还将看到一些用于处理宽字符的函数。
宽字符类似于字符数据类型。主要区别在于char占用1个字节的空间,而宽字符占用内存中的2个字节(有时为4个字节,取决于编译器)空间。对于2字节空间宽字符,可以容纳64K(65536)个不同的字符。所以宽字符可以容纳UNICODE字符。UNICODE值是国际标准,允许对任何语言的任何字符进行编码。
示例
#includeusing namespace std; int main() { wchar_t wide_character = L'a'; cout << "宽字符是: " << wide_character << endl; cout << "宽字符尺寸: " < 输出结果 宽字符是: 97 宽字符尺寸: 2我们可以看到,要制作宽字符,我们必须在字符字面量之前添加“L”。但是字符值不会显示在使用cout的输出中。所以要使用宽字符,我们必须使用wcout,而为了获取输入,我们必须使用wcin。
我们可以制作一些宽字符数组,并将它们打印为字符串。
示例
#include输出结果using namespace std; int main() { char str1[] = "This is character array"; cout << str1 << endl; wchar_t str2 [] = L"This is wide character array"; wcout << str2; } This is character array This is wide character array现在让我们看看一些用于宽字符的函数。
功能 描述 wcslen() 语法是size_twcslen(constwchar_t*wcs);该函数用于获取宽字符串的长度。 wcscat() 语法是:wchar_t*wcscat(wchar_t*strDest,constwchar_t*strSrc);此函数用于连接源字符串与目标字符串。 wcscpy() 语法是wchar_t*wcscpy(wchar_t*strDest,constwchar_t*strSrc);它有助于将源字符串复制到目标字符串。 wcsncpy() 语法是wchar_t*wcsncpy(wchar_t*dest,constwchar_t*src,size_tn);此函数用于将源的前n个字符复制到目标。当endossource小于n时,那么在目的地会有一些空字符。 wcscmp() 语法是intwcscmp(constwchar_t*wcs1,constwchar_t*wcs2);该函数用于比较两个宽字符串wcs1和wcs2。它就像strcmp()普通字符串比较的函数。 wcsstr() 语法是constwchar_t*wcsstr(constwchar_t*wcs1,constwchar_t*wcs2);该函数用于在wcs1中找到wcs2的第一次出现。如果不存在,则返回null wcstok() 语法为wchar_t*wcstok(wchar_t*str,constwchar_t*delim,wchar_t**ptr);这个功能就像strtok().它有助于标记使用宽字符创建的字符串。需要分隔符来标记字符串。