1.分别用循环结构和递归求字符串S的长度. 函数:int Slen(char*s).
时间: 2024-09-29 18:15:39 浏览: 40
当然可以。下面是用循环结构和递归结构分别实现求字符串S长度的函数。
**循环结构实现**
在循环结构中,我们可以遍历字符串的每个字符,直到遇到字符串的结尾(null字符)。以下是C语言的实现:
```c
#include <stdio.h>
int Slen(char* s) {
int len = 0;
while(*s != '\0') {
len++;
s++;
}
return len;
}
```
在这个函数中,我们使用了一个while循环,只要字符串s中还有字符,就增加长度计数器len的值,并将指针s向后移动一位。当遇到字符串结尾的null字符时,循环结束,返回长度。
**递归结构实现**
递归结构通常用于解决一些可以直接或间接地分解为更小的问题的情况。对于求字符串长度的问题,我们可以将问题分解为求单个字符的长度,再将这些长度累加起来。以下是C语言的递归实现:
```c
#include <stdio.h>
int Slen(char* s) {
if(*s == '\0') { // 基本情况:字符串为空,长度为0
return 0;
} else {
return 1 + Slen(s+1); // 递归情况:字符串非空,当前字符的长度为1,加上下一个字符的长度即可
}
}
```
在这个函数中,我们首先检查字符串是否为空。如果是,则返回0(空字符串的长度为0)。否则,我们将当前字符的长度设为1(因为一个字符的长度总是1),然后递归地计算下一个字符的长度并加到总长度上。当所有字符都被处理完时,递归结束,返回总长度。
阅读全文