求助: 宽字符的判断问题
弄了一天了,也没出个头绪。简单说就是,一个short类型的指针,指向一个字符串(UTF16格式的)
用int类型的变量一个字符一个字符的取出,判断。
问题:现在的代码只支持了窄字符(8位)的判断,利用ANSI码比较。但是宽字节的字符(如中文)就不知道怎么判断了,求助
#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
int main(int argc, char *argv[])
{
wchar_t test[] = L"你看到aBc了吗?";
std::cout << "test中小写字母有:\n";
int length = wcslen(test);
for(int i = 0; i < length; i++) {
if(test[i] >= L'a' && test[i] <= L'z')
printf("%c\n", test[i]);
}
return 0;
}
3楼的有点错误我改了以下啊 。 #include <string>
#include <iostream.h>
int main(int argc, char *argv[])
{
wchar_t test[] = L"你看到aBcf了吗?";
cout << "test中小写字母有: ";
int length = wcslen(test);
for(int i = 0; i < length; i++) {
if(test[i] >= L'a' && test[i] <= L'z')
printf("%c\n", test[i]);
}
return 0;
}