C++ 中的宽字符和库函数
在本节中,我们将了解 C++ 中的宽字符是什么。我们还将了解一些用于处理宽字符的函数。
宽字符类似于字符数据类型。主要区别在于 char 占用 1 个字节的空间,而宽字符占用 2 个字节(有时根据编译器占用 4 个字节)的内存空间。对于 2 个字节的空间,宽字符可以容纳 64K(65536)个不同的字符。因此,宽字符可以容纳 Unicode 字符。Unicode 值是国际标准,允许对几乎所有语言的字符进行编码。
示例
#include<iostream> using namespace std; int main() { wchar_t wide_character = L'a'; cout << "The wide character is: " << wide_character << endl; cout << "Wide character size: " <<sizeof(wide_character); }
输出
The wide character is: 97 Wide character size: 2
我们可以看到,要创建宽字符,必须在字符字面量之前添加“L”。但是,使用 cout 输出时,字符值不会显示在输出中。因此,要使用宽字符,必须使用 wcout,并且要获取输入,必须使用 wcin。
我们可以创建一些宽字符数组,并将其打印为字符串。
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
示例
#include<iostream> 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_t wcslen (const wchar_t* wcs); 此函数用于获取宽字符字符串的长度。 |
wcscat() | 语法为:wchar_t *wcscat(wchar_t *strDest, const wchar_t *strSrc); 此函数用于将源字符串连接到目标字符串。 |
wcscpy() | 语法为 wchar_t *wcscpy(wchar_t *strDest, const wchar_t *strSrc); 它有助于将源字符串复制到目标字符串。 |
wcsncpy() | 语法为 wchar_t* wcsncpy(wchar_t* dest, const wchar_t* src, size_t n); 此函数用于将源的前 n 个字符复制到目标。当源的结尾小于 n 时,目标中将包含一些空字符。 |
wcscmp() | 语法为 int wcscmp(const wchar_t* wcs1, const wchar_t* wcs2); 此函数用于比较两个宽字符字符串 wcs1 和 wcs2。它类似于用于普通字符串比较的 strcmp() 函数。 |
wcsstr() | 语法为 const wchar_t* wcsstr (const wchar_t* wcs1, const wchar_t* wcs2); 此函数用于查找 wcs2 在 wcs1 中的第一次出现。如果不存在,则返回 null。 |
wcstok() | 语法为 wchar_t* wcstok( wchar_t* str, const wchar_t* delim, wchar_t ** ptr); 此函数类似于 strtok()。它有助于对使用宽字符创建的字符串进行标记化。它使用分隔符对字符串进行标记化。 |
广告