编写c语言程序,删除宇行串中的某个字符。(宇符串、要删除的字符都由用户 人键益输人,有则删除 —所谓删除就是后序的元素往前覆盖,无则提示"该字 付不仔在。)
时间: 2023-07-15 10:10:08 浏览: 93
以下是一个简单的C语言程序,用于从一个字符串中删除指定的字符:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
char ch, *p, *q;
printf("请输入一个字符串:");
scanf("%s", str);
printf("请输入要删除的字符:");
scanf(" %c", &ch);
p = q = str;
while (*p) {
if (*p != ch) {
*q = *p;
q++;
}
p++;
}
*q = '\0';
if (strcmp(str, q) == 0) {
printf("该字符不存在。\n");
} else {
printf("删除后的字符串为:%s\n", str);
}
return 0;
}
```
程序首先提示用户输入一个字符串和要删除的字符。然后,使用两个指针 `p` 和 `q` 遍历字符串,并将不等于要删除的字符的元素复制到前面的位置。最后,将字符串末尾的 `q` 设定为结束符号。
如果要删除的字符不存在,则输出提示信息。否则,输出删除后的字符串。
相关问题
编写程序,输入一个字符串,再输入一个宇符,在宇行书中期除输入的宇符,形成新的字行事并 输出,程序保存为2.c
以下是实现此功能的 C 语言程序代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], ch, new_str[100];
int i, j = 0;
printf("请输入字符串:");
gets(str);
printf("请输入要删除的字符:");
scanf("%c", &ch);
for(i = 0; i < strlen(str); i++) {
if(str[i] != ch) {
new_str[j] = str[i];
j++;
}
}
new_str[j] = '\0';
printf("删除 %c 后的新字符串为:%s\n", ch, new_str);
return 0;
}
```
注意:此程序使用了 gets 函数,该函数不安全,容易造成缓冲区溢出等问题。建议使用 fgets 函数代替。
写程序,输入一个字符串,再输入一个宇符,在宇行书中期除输入的宇符,形成新的字行事并 输出,程序保存为2.c
以下是程序源代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
char ch;
int i, j;
printf("请输入一个字符串:");
scanf("%s", str);
printf("请输入一个字符:");
scanf(" %c", &ch);
printf("新的字符串为:");
for(i = 0, j = 0; i < strlen(str); i++)
{
if(str[i] != ch)
{
printf("%c", str[i]);
j++;
}
}
if(j == 0)
{
printf("字符串中没有出现过该字符!");
}
return 0;
}
```
程序的运行结果如下:
```
请输入一个字符串:hello world
请输入一个字符:l
新的字符串为:heo word
```
解释一下程序的实现过程:
1. 首先定义了一个字符串 `str` 和一个字符 `ch`。
2. 程序先要求用户输入一个字符串,使用 `scanf` 函数读入字符串。
3. 然后要求用户输入一个字符,这里需要注意要在 `%c` 前加一个空格,以吃掉前面输入字符串时留下的回车符。
4. 然后用一个循环遍历字符串中的每个字符,如果该字符不是用户输入的字符,则输出该字符,并将计数器 `j` 加 1。
5. 最后判断 `j` 是否为 0,如果是,则说明字符串中没有出现过该字符,输出相应的提示信息。
阅读全文