第1关:制作一个string筛选器,根据指定的长度区间筛选string
时间: 2024-02-22 14:56:05 浏览: 164
好的,让我们来制作一个string筛选器,根据指定的长度区间筛选string。具体实现可以分为以下步骤:
1. 定义一个函数,接收一个string类型的数组和两个正整数参数,表示长度区间的起点和终点。
2. 遍历该数组中的每个元素,判断其长度是否在指定的区间内。
3. 如果该元素的长度在指定区间内,则将其添加到一个新的数组中。
4. 返回新的数组。
代码实现如下:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char **filterString(char **strs, int strsSize, int minLen, int maxLen, int *returnSize) {
char **newStrs = (char **)malloc(sizeof(char *) * strsSize);
int count = 0;
for(int i = 0; i < strsSize; i++) {
int len = strlen(strs[i]);
if(len >= minLen && len <= maxLen) {
newStrs[count++] = strs[i];
}
}
*returnSize = count;
return newStrs;
}
int main() {
char *strs[] = {"hello", "world", "abc", "defg", "hijklmn", "opqrs"};
int strsSize = sizeof(strs) / sizeof(strs[0]);
int minLen = 3, maxLen = 5;
int returnSize;
char **newStrs = filterString(strs, strsSize, minLen, maxLen, &returnSize);
for(int i = 0; i < returnSize; i++) {
printf("%s ", newStrs[i]);
}
printf("\n");
return 0;
}
```
在上面的代码中,我们定义了一个`filterString`函数,接收一个字符串数组`strs`,一个整型参数`strsSize`表示数组的大小,以及两个整型参数`minLen`和`maxLen`表示长度区间的起点和终点。函数返回值为一个新的字符串数组,其中存储了符合长度区间要求的字符串。
我们首先使用`malloc`函数为新的字符串数组分配了内存空间,然后定义了一个`count`变量,用于记录符合要求的字符串个数。接着,我们使用for循环遍历了整个字符串数组`strs`,并使用`strlen`函数获取每个字符串的长度。如果某个字符串的长度在指定的区间内,我们就将其添加到新的字符串数组`newStrs`中,并将`count`加1。最后,我们将`count`赋值给`returnSize`,并返回新的字符串数组`newStrs`。
在`main`函数中,我们定义了一个字符串数组`strs`,并调用了`filterString`函数进行筛选。最后,我们遍历新的字符串数组`newStrs`,并输出其中的每个元素。
阅读全文