函数 extract (char str [], int s, int e, int n, char res []) 从字符串 str 中抽取字符形成字符串存入 res 中。抽取规则为: 在 str 中从序号 s 到 e (不包括 e) 的子串中每 n 个字符取 1 个字符。 例如,str 为”abcdefghijklmnopqrstuvwxyz” 则 extract (str,2,18,2,res) 被抽取的子串为”cdefghijklmnopqr”, 每 2 个字符取 1 个字符,抽取到的字符串为”cegikmoq”, 请按上述规则,完成函数 extract 的编写。
时间: 2024-04-12 12:31:41 浏览: 72
提取字符串中的符号
您可以使用以下代码实现函数`extract`:
```c
#include <stdio.h>
void extract(char str[], int s, int e, int n, char res[]) {
int index = 0;
for (int i = s; i < e; i += n) {
res[index] = str[i];
index++;
}
res[index] = '\0'; // 添加字符串结束符
}
int main() {
char str[] = "abcdefghijklmnopqrstuvwxyz";
char res[100];
extract(str, 2, 18, 2, res);
printf("抽取到的子串为: %s\n", res);
return 0;
}
```
在上面的代码中,我们使用`extract`函数从字符串`str`中按照规则抽取字符形成字符串,并将结果存储在数组`res`中。我们使用一个循环从序号`s`开始,每次增加`n`个字符,将对应的字符存储在结果字符串`res`中。最后,我们添加字符串结束符`\0`以表示字符串的结束。
在`main`函数中,我们调用`extract`函数并打印结果字符串。对于示例输入,函数将抽取从序号2到17(不包括18)的子串中每2个字符取1个字符,得到抽取到的子串为"cegikmoq"。
阅读全文