C语言输入一个字符串,然后输入一个想要删除的字符,输出删除该字符后的字符串
时间: 2024-09-08 16:02:19 浏览: 53
在C语言中,你可以使用`scanf`函数来读取用户输入的字符串和字符,然后通过遍历字符串,将不需要删除的字符复制到新的字符串中,从而实现删除特定字符的功能。以下是实现这一功能的基本步骤和示例代码:
1. 使用`scanf`函数读取用户输入的字符串到一个字符数组中。
2. 再次使用`scanf`读取用户想要删除的字符。
3. 遍历原始字符串,对于每一个不是要删除的字符,将其复制到新的字符串数组中。
4. 在新的字符串数组的末尾添加一个空字符`\0`来标识字符串的结束。
5. 使用`printf`函数输出修改后的字符串。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100]; // 假设输入的字符串不超过99个字符
char c;
char new_str[100]; // 存储删除字符后的字符串
int i, j = 0;
// 输入原始字符串
printf("请输入一个字符串: ");
scanf("%s", str);
// 输入要删除的字符
printf("请输入要删除的字符: ");
scanf(" %c", &c); // 注意%c前面有一个空格,用来消除前一个输入后留在输入流中的换行符
// 遍历并删除字符
for (i = 0; str[i] != '\0'; i++) {
if (str[i] != c) {
new_str[j++] = str[i]; // 复制不等于c的字符
}
}
new_str[j] = '\0'; // 确保新字符串以空字符结尾
// 输出结果
printf("删除字符 '%c' 后的字符串是: %s\n", c, new_str);
return 0;
}
```
注意:这里假设用户输入的字符串长度不会超过数组`str`的大小(99个字符),并且输入的字符串不包含空格。在实际应用中,应该对用户输入进行检查以防止缓冲区溢出,并且处理更复杂的情况,如输入包含空格的字符串等。
阅读全文