不使用strlen()函数,求字符串长度。用c++
时间: 2024-10-12 11:08:24 浏览: 44
在C++中,如果你不想使用`strlen()`函数来获取字符串长度,因为它的效率不高,特别是在处理宽字符(如`wchar_t*`类型的字符串)时,你可以通过手动遍历字符串的方式来计算长度。以下是几种常见的方式:
**1. 使用迭代器:**
```cpp
#include <iostream>
#include <string>
std::string get_string_length(const std::string& str) {
size_t length = 0;
for (char c : str) {
length++;
}
return length;
}
int main() {
std::string s = "Hello, World!";
int len = get_string_length(s);
std::cout << "字符串长度:" << len << std::endl;
return 0;
}
```
**2. 使用`std::find`函数:**
```cpp
std::string get_string_length(const std::string& str) {
const char* end = std::find(str.begin(), str.end(), '\0');
return std::distance(str.begin(), end);
}
int main() {
std::string s = "Hello, World!";
int len = get_string_length(s);
std::cout << "字符串长度:" << len << std::endl;
return 0;
}
```
在这两个例子中,我们都是找到字符串结束的`'\0'`字符的位置(对于C风格字符串),然后返回从开始到该位置的元素个数,即字符串长度。
阅读全文