C++获取字符串长度数

strlen,获取到的是字节数,中文占两个字节。
如何获取字符数,无论中文英文,标点符号,都按一个字符计算呢?这里提供其中的一个方法。那就是通过MultiByteToWideChar函数,将CString或char数据类型,转换为宽字符,通过wcslen获取长度。在宽字符集中,中英文,标点,都是按一个字符进行记数的。下面是示例代码:

#include <iostream>
#include "windows.h"
using namespace std;

void main()
{
    char str[] = "就知道玩dota!";
    wchar_t wstr[256];
    MultiByteToWideChar (CP_ACP, 0, str, -1, wstr, 256);
    int ilen,iwlen;
    ilen = iwlen = -1;
    
    cout<<strlen(str)<<endl;
    cout<<wcslen(wstr)<<endl;
}

以下是运行结果:

13
9

请按任意键继续. . .

2013-08-26 21:53

猜你喜欢

转载自www.cnblogs.com/wswind/p/9811670.html