用C语言实现输入一个字符串 str,再输入要删除字符 c(非空格字符),大小写不区分,将字符串 str 中出现的所有字符 c 删除。提示:去掉两端的空格。 输入格式: 在第一行中输入一行字符 在第二行输入待删除的字符 输出格式: 在一行中输出删除后的字符串 输入样例1: 在这里给出一组输入。例如: Bee E 输出样例1: 在这里给出相应的输出。例如: result: B
时间: 2024-02-16 21:00:23 浏览: 78
好的,这是一个字符串操作的问题,我可以给您提供一份C代码实现:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_LENGTH 100
void remove_char(char *str, char c);
int main()
{
char str[MAX_LENGTH], c;
fgets(str, MAX_LENGTH, stdin);
scanf("%c", &c);
remove_char(str, c);
printf("result: %s", str);
return 0;
}
void remove_char(char *str, char c)
{
char *p = str; // p 指向字符串 str 的起始位置
char *q = str; // q 指向新字符串的起始位置
int len = strlen(str);
// 去掉两端的空格
while (isspace(*p)) {
++p;
}
while (isspace(*(str + len - 1))) {
--len;
}
*(str + len) = '\0';
// 删除字符 c
while (*p != '\0') {
if (tolower(*p) == tolower(c)) {
++p;
} else {
*q++ = *p++;
}
}
*q = '\0';
}
```
这段代码先输入一个字符串和一个要删除的字符,然后调用 `remove_char()` 函数来删除字符串中的字符。在 `remove_char()` 函数中,首先去掉了两端的空格,然后遍历整个字符串,将不是要删除的字符的字符存入一个新的字符串中,最后将新的字符串复制回原字符串。
阅读全文