📅  最后修改于: 2023-12-03 15:29:12.250000             🧑  作者: Mango
在C++中查找字符串长度是常见的任务。下面介绍5种常见的方法。
strlen
函数strlen
函数是C语言标准库函数,也是C++字符数组处理库函数中最为常用的函数之一。使用该函数只需要注意参数类型是const char*
,例如:
const char* str = "hello";
int len = strlen(str); // len = 5
size
函数size
函数是STL中字符串类std::string
的成员函数,可以返回字符串长度,例如:
std::string str = "world";
int len = str.size(); // len = 5
sizeof
运算符sizeof
运算符可以求出变量或数据类型的字节数,但是该方法只适用于字符数组类型,例如:
char str[] = "hello";
int len = sizeof(str) / sizeof(char) - 1; // len = 5
上述代码中,由于字符数组最后一个元素为\0
,因此要减去1才是字符串的实际长度。
strlen
和string::c_str
结合在C++中有时需要将std::string
类型的字符串转换为C风格的字符串,可以使用c_str
函数。结合方法一中的strlen
函数,可以得到下面的代码:
std::string str = "hello";
int len = strlen(str.c_str()); // len = 5
for
循环和std::count_if
使用范围for
循环和std::count_if
算法可以遍历字符串中的所有字符,统计字符个数,例如:
std::string str = "hello";
int len = std::count_if(str.begin(), str.end(), [](char c){ return true; }); // len = 5
上述代码中,std::count_if
算法中lambda表达式返回true
即表示该字符计入字符串长度中。