下列给定程序中,函数fun()的功能是将字符串s中位于偶数位置的字符或ASCII码为奇数的字符放入字符串t中(规定第一个字符放在第0位中)。 例如:字符串中的数据为ADFESHDI,则输出应当是AFESDI。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。程序取名myf2.c。 【程序如下】 #include<stdio.h> #include<string.h> #define N 80 /************found***************/ void fun(char s,char t[]) { int i,j=0; for(i=0;i<strlen(s);i++) /************found***************/ if(i%2=0||s[i]%2!=0) t[j++]=s[i]; t[j]='\0'; } void main() {char s[N],t[N]; printf("\nPlease enter string s:"); gets(s); fun(s,t); printf("\nThe result is:%s \n",t); }
时间: 2023-08-22 16:09:21 浏览: 51
#include<stdio.h>
#include<string.h>
#define N 80
void fun(char s[], char t[]) { // 修正函数参数的类型,增加一个[]使其变为字符数组类型
int i, j = 0;
for(i = 0; i < strlen(s); i++) { // 修正if语句中的比较符号,应该使用==而不是=
if(i % 2 == 0 || s[i] % 2 != 0) {
t[j++] = s[i];
}
}
t[j] = '\0';
}
void main() {
char s[N], t[N];
printf("\nPlease enter string s:");
gets(s);
fun(s, t);
printf("\nThe result is:%s \n", t);
}
相关问题
c语言,编写函数将源字符串 s(长度小于 20)中所有数组下标为奇数的字符或ASCII码为偶数的字符放入目标字符串 t中。 并在主函数中输出目标字符串。
以下是实现该需求的 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。实际使用时,我们应该根据实际需求来定义字符串数组的长度。
给定程序中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面
以下是可能的函数实现:
```c
#include <string.h>
void fun(char *s, char *t) {
int len = strlen(s);
int i;
// 将 s 中的字符按正序存放到 t 中
for (i = 0; i < len; i++) {
t[i] = s[i];
}
// 将 s 中的字符按逆序连接到 t 的尾部
for (i = len - 1; i >= 0; i--) {
t[len + len - 1 - i] = s[i];
}
// 在 t 的末尾添加字符串结束符 '\0'
t[len + len] = '\0';
}
```
该函数先将字符串 `s` 中的字符按正序存放到字符串 `t` 中,然后将字符串 `s` 中的字符按逆序连接到字符串 `t` 的后面。最后,为字符串 `t` 添加字符串结束符 `'\0'`。