C语言 主函数中输入一个字符串 str,再输入一个字符 c,调用函数 delch(str,c)将字 符串 str 中出现的所有字符 c 删除。然后在主函数中输出删除字符 c 后的字符串。 即要求定义并调用函数 delch(str,c),它的功能是将字符串 str 中出现的所有 c 字符删除。
时间: 2023-12-05 20:06:26 浏览: 67
C语言程序设计-从字符串s中删除指定的字符c.c
5星 · 资源好评率100%
好的,以下是可以实现你的需求的 C 代码:
```c
#include <stdio.h>
#include <string.h>
void delch(char *str, char c) {
int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; ++i) {
if (str[i] != c) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100];
char c;
printf("请输入一个字符串:");
fgets(str, 100, stdin);
printf("请输入一个字符:");
scanf("%c", &c);
delch(str, c);
printf("删除字符 %c 后的字符串为:%s", c, str);
return 0;
}
```
在这段代码中,我们定义了一个 `delch` 函数,它的参数是一个字符指针和一个字符。函数的实现方式是遍历字符串中的每一个字符,如果它不等于要删除的字符,就将它移动到新的位置上。最后,将新的字符串末尾加上一个结束符号 `\0`。需要注意的是,我们不能直接在原始字符串上进行删除操作,因为字符串是常量,不能被修改。所以,我们需要先将字符串复制一份,然后在复制的字符串上进行操作。
在主函数中,我们先输入字符串和要删除的字符,然后调用 `delch` 函数将字符串中的字符删除。最后输出删除字符后的字符串。注意,我们使用了 `fgets` 函数来读取一行输入,这样可以避免因为换行符的原因导致输入不完整。同时,由于 `fgets` 会将换行符也读入字符串中,所以在输入字符时,我们需要使用 `scanf` 函数,并在格式字符串中加上空格,以忽略换行符。
阅读全文