利用指针实现由键盘任意输入一串字符,再输入一个字符,在此串字符中查找是否有此字符,如果有从此串字符中删除此字符用C语言
时间: 2023-06-16 08:02:13 浏览: 213
以下是一个利用指针实现的C语言程序,实现了由键盘任意输入一串字符,再输入一个字符,在此串字符中查找是否有此字符,如果有从此串字符中删除此字符的功能。
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], c;
printf("请输入一串字符:");
scanf("%s", str);
printf("请输入要删除的字符:");
scanf(" %c", &c); // 注意加上空格,避免缓冲区残留字符的影响
char *p = str; // 使用指针指向字符串的首地址
while (*p != '\0') { // 遍历字符串
if (*p == c) { // 如果找到了要删除的字符
char *q = p; // 使用另一个指针指向当前位置
while (*q != '\0') { // 将后面的字符往前移动
*q = *(q + 1);
q++;
}
p--; // 因为当前位置已经改变,所以要将指针p向前移动一位
}
p++;
}
printf("删除后的字符串为:%s", str);
return 0;
}
```
在这个程序中,我们首先定义了一个字符数组`str`和一个字符变量`c`,分别用于存储输入的字符串和要删除的字符。然后使用`scanf()`函数从键盘输入这两个值。
接着,我们定义了一个指针`p`,并将其指向字符串`str`的首地址。使用`while`循环遍历字符串,如果找到了要删除的字符,就使用另一个指针`q`指向当前位置,然后将后面的字符往前移动,直到字符串的结尾。最后,将指针`p`向前移动一位,因为当前位置已经改变。
最后,使用`printf()`函数输出删除后的字符串。
需要注意的是,在输入要删除的字符时,我们在`scanf()`函数前面加了一个空格,这是为了避免缓冲区残留字符的影响。