1.分别用循环结构和递归求字符串S的长度. 函数:int Slen(char*s). c++
时间: 2024-09-29 15:15:58 浏览: 45
使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法
好的,以下是用循环结构和递归结构分别求字符串S长度的C++函数:
循环结构:
```cpp
int Slen(char* s) {
int len = 0;
while (*s != '\0') {
len++;
s++;
}
return len;
}
```
这个函数使用了一个while循环,当字符串指针s指向字符串的末尾时,循环结束。在循环过程中,每次将指针s向后移动一位,直到到达字符串的末尾。在每次循环中,将长度len加一,最后返回长度len。
递归结构:
```cpp
int Slen(char* s) {
if (s == '\0') { // 如果指针s指向空字符串,返回0
return 0;
} else {
return 1 + Slen(s + 1); // 否则返回当前字符的ASCII码值加上下一个字符的长度
}
}
```
这个函数也使用了一个if语句来检查指针s是否指向空字符串。如果是空字符串,函数返回0。否则,它将当前字符的ASCII码值加上下一个字符的长度,并递归调用自身来计算下一个字符的长度。递归调用将指针s向后移动一位,直到到达字符串的末尾。最后返回递归调用的结果。
这两个函数都可以用来求字符串S的长度,但递归结构通常比循环结构更简洁和高效,特别是当字符串较短时。不过对于较大的字符串,循环结构可能更适合实现。
阅读全文