📜  C++中的wcsstr()函数与示例(1)

📅  最后修改于: 2023-12-03 15:14:03.303000             🧑  作者: Mango

C++中的wcsstr()函数与示例

简介

wcsstr()函数是C++标准库中的函数,它用于在一个宽字符字符串中查找一个子串的位置并返回。其中,wcs表示“wide character string”。

函数原型
wchar_t *wcsstr(const wchar_t *str1, const wchar_t *str2);

其中,str1为要查找的字符串,str2为要查找的子串。

函数会在str1中查找第一个出现的str2字符串,并返回该子串在str1中的首字符地址,如果找不到则返回NULL

需要注意的是,该函数只能用于宽字符,如果要使用普通字符(char),可以使用strstr()函数。

代码示例

下面是一个示例程序,演示了如何使用wcsstr()函数来在一个宽字符字符串中查找一个子串的位置并输出。

#include <iostream>
#include <cwchar>
using namespace std;

int main() {
    wstring str1 = L"Hello, world!";
    wstring str2 = L"world";
    wchar_t *pos = wcsstr(str1.c_str(), str2.c_str());
    if (pos != NULL) {
        wcout << L"子串 \"" << str2 << L"\" 在 \"" << str1 << L"\" 中的首字符地址为: " << pos - str1.c_str() << endl;
    } else {
        wcout << L"在 \"" << str1 << L"\" 中找不到子串 \"" << str2 << L"\"。" << endl;
    }
    return 0;
}

输出:

子串 "world" 在 "Hello, world!" 中的首字符地址为: 7

其中,L表示定义一个宽字符(wchar_t)字符串,wcout用于输出宽字符,c_str()将字符串转化为wchar_t类型的字符指针。