c语言编程 9.利用指针实现由键盘任意输入一串字符,再输入一个字符,在此串字符中查找是否有此字符,如果有从此串字符中删除此字符。
时间: 2024-05-01 18:21:03 浏览: 81
有一个字符串,内有若干个字符,今输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。
以下是利用指针实现的C语言程序,可以实现从键盘输入一串字符,再输入一个字符,在此串字符中查找是否有此字符,如果有则从此串字符中删除此字符:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void delete_char(char *str, char c);
int main()
{
char str[100], c;
printf("请输入一串字符:");
scanf("%s", str);
printf("请输入要查找并删除的字符:");
scanf(" %c", &c);
delete_char(str, c);
printf("删除后的字符串为:%s\n", 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 = 0; i < len; i++)
{
*(p + i) = *(p + i + 1);
}
len--;
}
else
{
p++;
}
}
}
```
程序中,`delete_char()` 函数接受两个参数,`str` 表示要进行操作的字符串,`c` 表示要查找并删除的字符。函数首先用 `strlen()` 函数获取字符串的长度,然后用指针 `p` 指向字符串的首地址。使用 while 循环遍历字符串,如果当前字符等于要删除的字符,则通过 for 循环将该字符后面的字符向前移动一位,并将字符串长度减一;否则,将指针 `p` 向后移动一位。最终,字符串中所有等于要删除的字符的字符都被删除了。
阅读全文