C++ string中 length()、size() 和 C strlen() 的区别

函数声明

C++ string 成员函数 length() 等同于 size(),但是和 C 库函数 strlen() 有着本质区别,使用时切勿混淆。首先看一下三个函数的申明:

string::length和string::size

在这里插入图片描述

再来看看cstring里面的strlen,返回的是C风格的字符串长度。

在这里插入图片描述

它们之间的区别根本就在于strlen()遇到字符’\0’就停止,而string成员函数length() size()会过滤掉空字符,输出不会被截断。
如下例子:

#include<iostream>
#include<cstring>
using namespace std;
char b[30]={
    
    0};
int main(){
    
    
    b[0] = 5; b[1] = 5; b[3] = 5;
    string a(b,30);
 
    // strcpy(b,a.c_str());
    cout<<"a.length()="<<a.length()<<endl;
    cout<<"a.size()="<<a.size()<<endl;
    cout<<"strlen(b)="<<strlen(b)<<endl;
    return 0;
}

运行的结果是:
在这里插入图片描述


另:欢迎访问我的个人博客

猜你喜欢

转载自blog.csdn.net/MAINKEYS/article/details/122519952