请用C语言编写如下程序:利用指针实现由键盘任意输入一串字符,再输入一个字符,在此串字符中查找是否有此字符,如果有从此串字符中删除此字符。如:原串为abcdef,删除字符为c,新串为abdef。
时间: 2023-06-16 08:06:24 浏览: 147
下面是用 C 语言编写的程序,实现了该功能:
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void delete_char(char *str, char c);
int main() {
char str[MAX_LEN];
char c;
printf("请输入一串字符:");
fgets(str, MAX_LEN, stdin);
printf("请输入要删除的字符:");
scanf("%c", &c);
delete_char(str, c);
printf("删除后的字符串为:%s", str);
return 0;
}
void delete_char(char *str, char c) {
int len = strlen(str);
char *p = str;
while (*p != '\0') {
if (*p == c) {
for (int i = p - str; i < len - 1; i++) {
*(str + i) = *(str + i + 1);
}
*(str + len - 1) = '\0';
len--;
}
else {
p++;
}
}
}
```
程序首先定义了一个 MAX_LEN 常量,用于限制输入的字符串长度。接着,程序定义了一个 delete_char 函数,用于实现删除指定字符的功能。该函数接受两个参数,一个是字符串指针,另一个是要删除的字符。函数内部遍历字符串,如果遇到要删除的字符,就将该字符后面的字符全部向前移动一位,直到字符串末尾。最后,将字符串的长度减一并在末尾添加一个空字符。
在主函数中,程序先从键盘读入一串字符,然后再读入要删除的字符。接着,程序调用 delete_char 函数删除指定字符,并输出结果。
阅读全文