用C语言和指针和while循环语句实现从键盘输入一串字符,再输入一个字符,从字符串中删除这个输入的的字符
时间: 2024-05-02 22:23:18 浏览: 78
C语言全套视频教程 视频.txt
好的,我明白了。下面是用 C 语言和指针和 while 循环语句实现从键盘输入一串字符,再输入一个字符,从字符串中删除这个输入的的字符的代码:
```c
#include <stdio.h>
void deleteChar(char *str, char c) { // 定义一个函数,用于删除字符
char *p = str; // 定义一个指针 p,初始指向 str
while (*str != '\0') { // 判断字符串是否结束,若结束则退出循环
if (*str != c) { // 如果当前字符不是要删除的字符 c,则将它复制到指针 p 所指向的位置,并将指针 p 向后移动一位
*p = *str;
p++;
}
str++; // 指针 str 向后移动一位
}
*p = '\0'; // 在字符串结尾添加一个空字符,表示字符串结束
}
int main() {
char str[100], c;
printf("请输入一串字符:");
scanf("%s", str); // 从键盘输入一串字符
printf("请输入要删除的字符:");
scanf(" %c", &c); // 从键盘输入要删除的字符
deleteChar(str, c); // 调用删除字符的函数
printf("删除后的字符串为:%s\n", str);
return 0;
}
```
如果要删除的字符在字符串中出现多次,上面的代码只会删除第一个出现的字符。如果要删除所有出现的字符,可以把 if 语句改成 while 语句:
```c
void deleteChar(char *str, char c) {
char *p = str;
while (*str != '\0') {
if (*str != c) {
*p = *str;
p++;
}
str++;
}
*p = '\0';
}
```
这样,程序就会在字符串中删除所有出现的要删除的字符。
阅读全文