编写c++程序,使用字符数组计算字符串的长度。不能使用strlen函数。
时间: 2024-10-27 17:09:52 浏览: 23
在C++中,计算字符串长度而不使用内置的`strlen`函数,通常可以采用遍历字符数组的方式来实现。你可以创建一个变量记录遇到空字符('\0')的位置,这个位置就是字符串的结束。以下是示例代码:
```cpp
#include <iostream>
// 定义一个名为findLength的函数,输入是一个字符数组(char*)
int findStringLength(char* str) {
int length = 0; // 初始化长度为0
while (str[length] != '\0') { // 遍历直到遇到空字符
length++; // 每次找到一个非空字符,长度加1
}
return length; // 返回字符串的实际长度
}
int main() {
char myString[] = "Hello, World!"; // 示例字符串
int stringLength = findStringLength(myString);
std::cout << "The length of the string is: " << stringLength << std::endl;
return 0;
}
```
在这个例子中,`findStringLength`函数通过逐个检查字符数组中的元素,直到找到空字符为止,以此计算字符串的长度。
相关问题
用c++不使用strlen()函数,求字符串长度。
在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";
不使用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风格字符串),然后返回从开始到该位置的元素个数,即字符串长度。
阅读全文