编写函数void fun(char *s ,char *t),将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指字符数组中。用c语言编写且有主函数
时间: 2024-05-02 19:17:38 浏览: 107
下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
void fun(char *s, char *t) {
int i, j = 0;
for (i = 0; s[i] != '\0'; i++) {
if (i % 2 == 0 || s[i] % 2 == 0) {
t[j++] = s[i];
}
}
t[j] = '\0';
}
int main() {
char s[100], t[100];
printf("请输入字符串s:");
scanf("%s", s);
fun(s, t);
printf("处理后的字符串t为:%s\n", t);
return 0;
}
```
函数 `fun()` 接受两个参数,分别是源字符串 `s` 和目标字符串 `t`。函数中使用循环遍历源字符串中的每个字符,如果该字符位于奇数位置或其 ASCII 码为偶数,则将其添加到目标字符串中。最后,将目标字符串末尾的字符设为 '\0',以标记字符串的结束。
在 `main()` 函数中,首先输入源字符串 `s`,然后调用 `fun()` 函数进行处理,将结果存储在目标字符串 `t` 中,并输出由 `fun()` 处理后的字符串 `t`。
相关问题
编写函数void fun(char *s,char t[]),将s所指字符串中除了下标为奇数、同时ascii值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
好的,我明白了你的要求。以下是解答:
```c
void fun(char *s, char t[]) {
int i, j = 0;
for (i = 0; s[i] != '\0'; i++) {
if (i % 2 == 0 && s[i] % 2 != 0) {
t[j] = s[i];
j++;
}
}
t[j] = '\0';
}
```
这个函数的实现比较简单,它首先遍历输入字符串 s 中的每个字符,如果下标为偶数且 ASCII 码为奇数,就把这个字符放入输出字符串 t 中。最后在 t 的末尾添加一个空字符,表示字符串结束。
注意,这个函数假设 t 数组具有足够的空间来容纳所有符合条件的字符。如果 t 数组大小不够,可能会导致内存溢出的问题。
编写函数void fun(char *s,char t[]),将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
以下是函数的实现:
```c
void fun(char *s, char t[]) {
int i, j;
j = 0;
for (i = 0; s[i] != '\0'; i++) {
if (i % 2 == 1 && s[i] % 2 == 1) {
t[j] = s[i];
j++;
}
}
t[j] = '\0';
}
```
函数的思路是,遍历字符串s中的每个字符,如果字符的下标和ASCII值都是奇数,则将该字符放入新串t中。最后在新串t的末尾加上字符串结束标志'\0'。
阅读全文