写一个C语言程序,从键盘输入一个字符串,删除其中某个字符。例如输入字符串“abcedfededff”,删除其中的字符e.则输入的字符串为“abcdfddff”。
时间: 2024-03-13 13:47:48 浏览: 82
好的,以下是程序的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], ch, new_str[100];
int i, j, len;
printf("请输入一个字符串:");
scanf("%s", str);
printf("请输入要删除的字符:");
scanf(" %c", &ch); // 注意要在 %c 前面加上一个空格,避免读取上一个输入的回车符
len = strlen(str);
j = 0;
for (i = 0; i < len; i++) {
if (str[i] != ch) {
new_str[j] = str[i];
j++;
}
}
new_str[j] = '\0';
printf("删除后的字符串为:%s\n", new_str);
return 0;
}
```
程序的思路是:先从键盘输入一个字符串,再输入要删除的字符。然后遍历字符串,如果字符不等于要删除的字符,就将它复制到一个新的字符串里。最后输出新的字符串即可。
注意,在输入要删除的字符时,要在 %c 前面加上一个空格,这是为了避免读取上一个输入的回车符。
相关问题
c语言从键盘上输入一个字符串,删除其中某个字符
好的,我来回答你的问题。
要从键盘上输入一个字符串并删除其中某个字符,可以使用C语言中的字符数组和字符串处理函数。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
char del;
int i, j;
printf("请输入一个字符串:");
scanf("%s", str);
printf("请输入要删除的字符:");
scanf(" %c", &del);
for (i = 0, j = 0; i < strlen(str); i++) {
if (str[i] != del) {
str[j++] = str[i];
}
}
str[j] = '\0';
printf("删除后的字符串为:%s\n", str);
return 0;
}
```
在这个程序中,我们首先定义了一个字符数组 `str`,用于存储从键盘上输入的字符串。然后,我们使用 `scanf()` 函数从键盘上读取字符串,并将其存储在 `str` 中。
接下来,我们使用 `scanf()` 函数从键盘上读取要删除的字符,并将其存储在 `del` 变量中。
然后,我们使用一个循环遍历字符串 `str` 中的每个字符。如果当前字符不是要删除的字符,我们就将其复制到新的字符串中。最后,我们在新的字符串末尾加上一个字符串结束符 `\0`,并输出删除后的字符串。
需要注意的是,在输入要删除的字符时,我们使用了一个空格来忽略之前输入的回车符。这是因为在读取字符时,`scanf()` 函数会将回车符留在输入缓冲区中,如果不加空格,下一个 `scanf()` 函数就会读取到这个回车符,导致程序出错。
希望这个程序能够帮助你解决问题,如果你还有其他问题,可以继续提问。
写C语言代码请使用指针的方法编写程序,程序的功能是从键盘输入一个字符串(字符串长度小于100),删除其中的字母a后输出。例如,输入字符串abcaca,输出bcc。
下面是使用指针的方法编写的 C 语言程序:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], *p, *q;
printf("请输入一个字符串:");
scanf("%s", str);
p = q = str;
while (*p != '\0')
{
if (*p != 'a')
{
*q = *p;
q++;
}
p++;
}
*q = '\0';
printf("删除字母a后的字符串是:%s\n", str);
return 0;
}
```
程序首先通过 `scanf` 函数从键盘输入一个字符串,然后定义两个指针 `p` 和 `q` 分别指向字符串的首地址。
程序使用 `while` 循环遍历字符串中的每个字符,如果当前字符不是字母 `a`,则将其复制到 `q` 所指向的位置,并将 `q` 向后移动一个位置。这样,所有不是字母 `a` 的字符都被复制到了 `q` 所指向的位置,最后在字符串的末尾加上一个空字符。
最后,程序输出删除字母a后的字符串。
阅读全文