用c++不使用strlen()函数,求字符串长度。
时间: 2024-10-12 13:08:51 浏览: 52
在C++中,如果你不想直接使用`strlen()`函数来计算字符串长度,可以使用迭代器遍历字符串,并在一个字符数组结束标志(通常是'\0')处停止。以下是这种方法的一个例子:
```cpp
#include <string>
#include <iostream>
size_t get_string_length(const std::string& str) {
size_t length = 0; // 初始化长度为0
const char* ptr = str.c_str(); // 获取const char指针
while (*ptr != '\0') { // 遍历直到遇到结束符
++length; // 长度加一
++ptr; // 移动到下一个字符
}
return length; // 返回字符串长度
}
int main() {
std::string testStr = "Hello, World!";
size_t len = get_string_length(testStr);
std::cout << "字符串长度: " << len << "\n";
相关问题
用c++编写一个函数求字符串的长度,类似strlen函数
下面是一个简单的C++函数,可以求出给定字符串的长度:
```cpp
#include <iostream>
using namespace std;
int my_strlen(const char* str) {
int len = 0;
while (*str++) {
len++;
}
return len;
}
int main() {
char s[] = "Hello World!";
cout << "字符串长度为:" << my_strlen(s) << endl;
return 0;
}
```
在这个函数中,我们使用了一个指针来遍历整个字符串,每次循环将指针向后移动一位,直到指针指向字符串的结尾处(即 `\0` 字符)。在每次循环中,我们将字符串长度加 1,最终返回字符串的长度即可。
不使用strlen()函数,求字符串长度。用c++
在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风格字符串),然后返回从开始到该位置的元素个数,即字符串长度。
阅读全文