复制
收藏
提问
简洁

输入一个字符串(可能包含空格,长度不超过20),输出该串的长度。 输入格式: 输入在一行中给出1个长度不超过20的字符串s。 输出格式: 在一行中输出s的串长。 输入样例: welcome to acm world 输出样例: 20 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB C++ (g++)

4月前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

在C++中,计算字符串长度是一个常见的操作,可以通过不同的方法实现。以下是几种计算C++字符串长度的方法:

使用 std::string 类的 length()size() 函数

如果你使用的是C++标准库中的 std::string 类,可以直接使用其 length()size() 成员函数来获取字符串的长度。这两个函数在 std::string 类中是等价的,都返回字符串中字符的数量,不包括结尾的空字符('\0')。

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello, world!";
    int len = str.length(); // 或者 int len = str.size();
    std::cout << "字符串长度为:" << len << std::endl;
    return 0;
}

249

使用 C 风格的字符串和 strlen() 函数

对于C风格的字符串(字符数组),可以使用 strlen() 函数来计算长度。这个函数计算从字符串第一个元素到第一个 '\0' 之间元素的个数。

#include <cstring>

char a[] = "abc";
int len = strlen(a);

1

使用 std::basic_string 类的 length() 函数

std::basic_stringstd::string 的通用模板,可以用于不同类型的字符序列,如宽字符。使用 std::basic_string 类的 length() 函数可以获取存储的字符序列的长度。

#include <iostream>
#include <string>

int main() {
    std::basic_string<char> str = "Hello, world!";
    int len = str.length();
    std::cout << "字符串长度为:" << len << std::endl;
    return 0;
}

6

使用 sizeof 运算符

sizeof 运算符可以用来获取存储该字符串的变量占用的空间大小,这包括了字符串的实际字符数以及结尾的空字符('\0')。但是,这种方法并不直接提供字符串的长度,而是整个字符数组的大小。

char a[] = "abc";
int size = sizeof(a) / sizeof(a[0]);

18

注意事项

  • length()size() 函数的返回类型都是 std::string::size_type,这是一种无符号整数类型,适合表示字符串的长度。
  • 当处理C风格的字符串时,strlen() 函数不会计算任何额外的空余空间,只计算到第一个 '\0'
  • std::string 类型的对象还包括 max_size()capacity() 函数,分别返回 std::string 对象最多包含的字符数和在重新分配内存之前所能包含的最大字符数。

7

你觉得结果怎么样?
C++中如何计算字符串长度?
C++字符串长度计算函数
C++字符串长度计算方法
C++中strlen函数的使用
C++字符串长度和字符数组的关系
C++字符串长度计算的注意事项

以上内容由AI搜集生成,仅供参考

在线客服