C/C++ strlen/wcslen函数使用

最后更新于:2020-07-27 21:23:33

一.字符串简介

字符串又分为多字节字符串(CHAR和宽字节字符串(WCHAR),在 unicode和多字节区别 文章中我们有提到:宽字节字符串与多字节字符串不同,宽字节字符串前面有L修饰 ,例如:

char *a1 = "C/C++教程 - 猿说编程";     //多字节字符串
wchar_t *a2 = L"C/C++教程 - 猿说编程"; //宽字节字符串

unicode编码下,字符串对应的类型:wchar_t / WCHAR,多字节编码下,字符串对应的类型:char/CHARwindows.h中有如下定义:

//windows.h中有下面的定义:
typedef char CHAR; 
typedef wchar_t WCHAR;

二.strlen/wcslen函数使用

C语言strlen函数主要用于获取多字节字符串长度,而wcslen函数主要用于获取宽字节字符串长度,举个例子:

/************************************************************************/
/*@文件名      : strlen/wcslen.cpp
/*@日  期      : 2020/6/17 19:37
/*@作  者      : 猿说编程
/*@公众号      : 猿说编程
/*@博客        : www.shuopython.com
/*@描述        : strlen/wcslen区别 - C/C++教程
/************************************************************************/

#include "stdafx.h"
#include <stdio.h>
#include "windows.h"
#include <Locale.h> //需要包含头文件


int _tmain(int argc, _TCHAR* argv[])
{
    char p1[] = "C/C++教程 - 猿说编程";     //多字节字符串
    wchar_t p2[] = L"C/C++教程 - 猿说编程"; //宽字节/unicode字符串

    setlocale(LC_ALL, "chs");    //chs 表示中文,解决unicode中文乱码问题

    printf("字符串p1:%s   长度:%d\n", p1, strlen(p1));
    wprintf(L"字符串p2:%s   长度:%d\n", p2, wcslen(p2));

    system("pause");

    return 0;
}

/*
输出:
字符串p1:C/C++教程 - 猿说编程   长度:20
字符串p2:C/C++教程 - 猿说编程   长度:14
请按任意键继续. . .
*/


猜你喜欢

1. 三目运算符

2. 逗号表达式

3. cout/wcout输出

4. char和wchar_t相互转换

5. unicode和多字节区别




转载请注明: 猿说编程 » C/C++教程 » strlen/wcslen函数使用



技术交流、商务合作请直接联系博主
扫码或搜索:猿说编程

python/C++教程

猿说编程
微信公众号 扫一扫关注

赞赏

微信赞赏支付宝赞赏