复制
收藏
提问
简洁
输入一个字符串(可能包含空格,长度不超过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;
}
使用 C 风格的字符串和 strlen()
函数
对于C风格的字符串(字符数组),可以使用 strlen()
函数来计算长度。这个函数计算从字符串第一个元素到第一个 '\0'
之间元素的个数。
#include <cstring>
char a[] = "abc";
int len = strlen(a);
使用 std::basic_string
类的 length()
函数
std::basic_string
是 std::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;
}
使用 sizeof
运算符
sizeof
运算符可以用来获取存储该字符串的变量占用的空间大小,这包括了字符串的实际字符数以及结尾的空字符('\0'
)。但是,这种方法并不直接提供字符串的长度,而是整个字符数组的大小。
char a[] = "abc";
int size = sizeof(a) / sizeof(a[0]);
注意事项
length()
和size()
函数的返回类型都是std::string::size_type
,这是一种无符号整数类型,适合表示字符串的长度。- 当处理C风格的字符串时,
strlen()
函数不会计算任何额外的空余空间,只计算到第一个'\0'
。 std::string
类型的对象还包括max_size()
和capacity()
函数,分别返回std::string
对象最多包含的字符数和在重新分配内存之前所能包含的最大字符数。
你觉得结果怎么样?