用C语言编写程序,实现删除某一个字符串中的某一个字符,要求字符串和字符都通过键盘输入。 【输入形式】 第一行输入一个字符串,以回车结束。 第二行输入要删除的字符。 【输出形式】 输出对应的字符串。 【样例输入1】: abcddcba d 【样例输出1】: abccba 【样例输入2】: 1234 5678 9 【样例输出2】: 1234 5678
时间: 2023-12-01 08:02:10 浏览: 133
好的,我会帮你解决这个问题。以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
char c;
int i, j;
// 输入字符串
printf("请输入一个字符串:");
gets(str);
// 输入要删除的字符
printf("请输入要删除的字符:");
scanf("%c", &c);
// 删除字符
for(i = 0, j = 0; str[i] != '\0'; i++)
{
if(str[i] != c)
{
str[j] = str[i];
j++;
}
}
str[j] = '\0';
// 输出结果
printf("删除后的字符串为:%s", str);
return 0;
}
```
代码分析:
1. 定义一个字符数组 `str` 用于存储输入的字符串,假设字符串长度不超过 100。
2. 定义一个字符变量 `c` 用于存储输入的要删除的字符。
3. 使用 `gets()` 函数从键盘输入字符串,该函数可以读取含有空格的字符串。
4. 使用 `scanf()` 函数从键盘输入要删除的字符。
5. 使用循环遍历字符串 `str`,如果该字符不是要删除的字符,则将该字符存储到新的字符串中。
6. 最后在新的字符串的末尾添加一个空字符,表示该字符串的结束。
7. 输出删除后的字符串。
注意事项:
1. 在输入字符串时,要注意使用 `gets()` 函数,因为该函数可以读取含有空格的字符串,而 `scanf()` 函数不能读取含有空格的字符串。
2. 在输入要删除的字符时,要注意使用 `%c` 格式符,并在前面加上一个空格,因为在输入字符串时,按下回车键会将回车符留在输入缓冲区中,而 `%c` 格式符会将回车符当做一个字符读取,从而导致程序出错。加上一个空格可以将回车符从输入缓冲区中清除。
3. 删除字符时,可以使用两个指针 `i` 和 `j` 分别指向原字符串和新字符串的位置,如果 `str[i]` 不等于要删除的字符,则将其存储到 `str[j]` 中,同时将 `j` 加 1,最后在 `str[j]` 处添加一个空字符。
阅读全文