C++ 分割中英文混合字符串
时间: 2023-07-11 08:09:55 浏览: 195
C++中英混合字符串截取
5星 · 资源好评率100%
在C++中,可以使用std::wstring和std::wistringstream以及iswalpha函数来分割中英文混合字符串。以下是一个简单的示例:
```c++
#include <iostream>
#include <string>
#include <sstream>
#include <locale>
int main() {
std::wstring str = L"这是一段English和中文混合的字符串。";
std::wistringstream iss(str);
std::wstring word;
// 设置本地化环境,用于判断是否是中文字符
std::locale loc("");
while (iss >> word) {
std::wstring eng, chn;
for (wchar_t c : word) {
if (iswalpha(c)) {
eng += c;
} else if (std::iswctype(c, std::iswctype::wctype("CJK"), loc)) {
chn += c;
}
}
std::wcout << "英文单词:" << eng << std::endl;
std::wcout << "中文字符:" << chn << std::endl;
}
return 0;
}
```
在上面的示例中,我们首先创建一个std::wstring类型的字符串,并使用std::wistringstream把它转换为std::wstring类型的输入流。然后,我们使用std::locale设置本地化环境,以便使用iswalpha和iswctype函数来判断字符是否是英文字符和中文字符。
在循环中,我们使用std::wstring类型的word变量逐个读取输入流中的单词。对于每个单词,我们遍历它的每个字符,如果字符是英文字符,则把它加入到std::wstring类型的eng变量中,如果字符是中文字符,则把它加入到std::wstring类型的chn变量中。最后,我们输出英文单词和中文字符。
注意,上面的示例仅供参考,实际上,你需要根据你的具体需求来分割中英文混合字符串。
阅读全文