C语言编程删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用函数delchar(s,c),它的功能是将字符串s中出现的所有c字符删除 【输入形式】happy new year a 【输出形式】hppy new yer
时间: 2024-02-18 15:03:07 浏览: 43
好的,我理解了你的要求。以下是 C 语言实现删除字符串中指定字符的代码:
```c
#include <stdio.h>
#include <string.h>
void delchar(char *s, char c) {
int len = strlen(s);
int j = 0;
for (int i = 0; i < len; i++) {
if (s[i] != c) {
s[j++] = s[i];
}
}
s[j] = '\0';
}
int main() {
char s[100], c;
fgets(s, 100, stdin);
scanf("%c", &c);
delchar(s, c);
printf("%s", s);
return 0;
}
```
在这段代码中,我们定义了一个名为 `delchar` 的函数,它接受两个参数:一个字符串指针和一个字符。函数的作用是将字符串中出现的所有指定字符删除。
在 `main` 函数中,我们首先使用 `fgets` 函数从标准输入中读取一个字符串,然后使用 `scanf` 函数读取一个字符。接着,我们调用 `delchar` 函数,将读取的字符串和字符作为参数传递进去。最后,我们使用 `printf` 函数输出处理后的字符串。
需要注意的是,在 `delchar` 函数中,我们使用了两个指针 `i` 和 `j`,其中 `i` 指向字符串中的当前字符,`j` 指向处理后的字符串中的当前字符。当 `i` 指向的字符不等于指定字符时,将其复制到 `j` 指向的位置,并将 `j` 向后移动一位。这样,最终 `j` 所指向的位置即为处理后的字符串的结尾,我们在这个位置上添加一个字符串结束符号 `\0`。
阅读全文