📜  s.length() 和 s.size() 之间的差异是什么 - C++ (1)

📅  最后修改于: 2023-12-03 14:47:12.071000             🧑  作者: Mango

s.length()和s.size()的区别

在C++中,std::string类提供了两个用于获取字符串长度的成员函数:length()size()。它们的返回值相同,都是字符串的长度,但它们的实现方式不同,具体区别如下:

  • length()string类的一个成员函数,它返回字符串中实际字符的数量(不包括结尾的空字符\0),即字符串的长度;
  • size()也是string类的一个成员函数,它返回字符串中实际字符的数量(不包括结尾的空字符\0),也即字符串的长度。

两者的区别就在于它们的实现方式不同,但是在大多数情况下,两者可以互换使用,返回的结果是相同的。

代码示例

下面是一个使用length()size()函数的示例代码:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s1 = "hello";
    string s2 = "world,世界,こんにちは";

    cout << s1.length() << endl; // 输出5
    cout << s1.size() << endl; // 输出5

    cout << s2.length() << endl; // 输出13
    cout << s2.size() << endl; // 输出13

    return 0;
}

执行结果如下:

5
5
13
13
总结

s.length()s.size()之间的区别很小,但是在使用时可以根据实际情况灵活选择。在以后的编程过程中,如果需要获取一个字符串的长度,可以优先考虑使用这两个函数,避免手动统计字符串中字符的数量。