c语言,编写函数将源字符串 s(长度小于 20)中所有数组下标为奇数的字符或ASCII码为偶数的字符放入目标字符串 t中。 并在主函数中输出目标字符串。
时间: 2023-12-03 10:43:27 浏览: 79
以下是实现该需求的 C 代码:
```c
#include <stdio.h>
#include <string.h>
void filter(char *s, char *t) {
int len = strlen(s);
int j = 0;
for (int i = 0; i < len; i++) {
if (i % 2 == 1 || s[i] % 2 == 0) {
t[j++] = s[i];
}
}
t[j] = '\0'; // 在 t 的末尾添加字符串结束符
}
int main() {
char s[20];
char t[20];
printf("请输入字符串 s:");
scanf("%s", s);
filter(s, t);
printf("目标字符串 t 为:%s\n", t);
return 0;
}
```
在该代码中,我们定义了一个 `filter` 函数,接收两个参数 `s` 和 `t`,分别表示源字符串和目标字符串。函数中使用变量 `len` 表示源字符串的长度,变量 `j` 表示目标字符串的下标。然后使用循环遍历源字符串,当数组下标为奇数或者 ASCII 码为偶数时,将该字符添加到目标字符串中,并将目标字符串的下标 `j` 加 1。最后,在目标字符串的末尾添加字符串结束符 `\0`,表示该字符串的结束。在主函数中,我们首先接收用户输入的源字符串,然后调用 `filter` 函数进行过滤,并输出目标字符串。
注意,在该代码中,我们假设用户输入的源字符串长度不超过 20,因此在定义字符串数组时都给定了长度为 20。实际使用时,我们应该根据实际需求来定义字符串数组的长度。
阅读全文