输入一个字符串,再输入一个字符,在字符串中删除输入的字符,形成新的字符串并输出,c语言
时间: 2023-08-16 21:08:03 浏览: 35
下面是一个简单的 C 语言示例代码,可以实现输入一个字符串和一个字符,然后在字符串中删除该字符,输出新的字符串:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
char ch;
int i, j;
printf("请输入一个字符串:");
gets(str);
printf("请输入要删除的字符:");
scanf("%c", &ch);
for (i = j = 0; str[i] != '\0'; i++)
{
if (str[i] != ch)
{
str[j++] = str[i];
}
}
str[j] = '\0';
printf("删除后的字符串为:%s\n", str);
return 0;
}
```
代码中使用了一个 `for` 循环,遍历输入的字符串中的每个字符,如果当前字符不是要删除的字符,就将其保存到一个新的字符串中。最后将新字符串末尾加上一个结束符 `\0`,并输出删除后的字符串。需要注意的是,这里使用了 `gets` 函数来读取输入的字符串,但是由于 `gets` 存在缓冲区溢出等安全问题,建议使用更安全的 `fgets` 函数来读取输入的字符串。
相关问题
c语言输入一个字符串再输入一个字符在字符串中删除输入的字符形成新的字符串并输出
可以使用C语言中的字符串操作函数来实现,以下是一个示例代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[100], ch;
int i, j, len;
printf("请输入一个字符串:");
gets(str);
printf("请输入要删除的字符:");
scanf("%c", &ch);
len = strlen(str);
for (i = 0, j = 0; i < len; i++) {
if (str[i] != ch) {
str[j] = str[i];
j++;
}
}
str[j] = '\0';
printf("删除后的字符串为:%s\n", str);
return 0;
}
```
运行程序后,先输入一个字符串,再输入要删除的字符,程序会将输入的字符在字符串中删除,输出删除后的新字符串。注意,这里使用了 `gets()` 函数来读取输入的字符串,但在实际开发中,应该使用更安全的函数 `fgets()` 来代替,避免缓冲区溢出等问题。
c语言,输入一个字符串,再输入一个字符,在字符串中删除输入的字符,形成新的字符串并输出
可以使用字符串的遍历和字符串操作函数来实现这个功能。具体步骤如下:
1. 输入一个字符串和一个字符。
2. 遍历字符串,找到所有与输入的字符相等的位置,并记录下来。
3. 创建一个新字符串,将原字符串中不等于输入字符的所有字符拷贝到新字符串中。
4. 输出新字符串。
下面是具体的代码实现:
```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; str[i] != '\0'; i++) {
if (str[i] != ch) {
new_str[j] = str[i];
j++;
}
}
new_str[j] = '\0';
printf("新字符串为:%s\n", new_str);
return 0;
}
```
注意,这里使用了 `gets` 函数来输入字符串,但是这个函数有安全问题,建议使用更安全的函数替代,比如 `fgets`。此外,这里没有进行输入的合法性检查,如果输入的字符不在字符串中,程序可能会出错,需要注意。