写一个函数来计算这些字符串的长度,函数输入char数组,输出字符串长度? [2]这个函数的时间复杂度和空间复杂度是多少?
时间: 2024-09-24 10:06:42 浏览: 23
C#算法函数:获取一个字符串中的最大长度的数字
当需要编写一个函数来计算字符数组(字符串)的长度时,可以使用以下简单的C语言示例:
```c
#include <stdio.h>
size_t string_length(char* str) {
if (str == NULL) {
return 0; // 如果输入空指针,返回0
}
size_t length = 0;
while (*str != '\0') { // 遍历直到遇到字符串结束符'\0'
length++;
str++; // 指针向前移动一位
}
return length;
}
int main() {
char arr[] = "Hello, World!";
printf("Length of the string is: %zu\n", string_length(arr));
return 0;
}
```
关于时间复杂度和空间复杂度:
- **时间复杂度**:该函数遍历整个字符数组一次,直到找到结束符`\0`。因此,时间复杂度是O(n),其中n是字符串的实际长度。
- **空间复杂度**:此函数只使用了几个固定的额外空间(如`length`变量),它并不随输入大小变化。所以空间复杂度是O(1)。
阅读全文