用c语言补充添加字符删除函数,能够在字符串中找到并删除指定的字符,要求函数原型为: void delete_c(char*str,char c);
时间: 2023-09-20 09:05:50 浏览: 144
### 回答1:
下面是一个简单的用C语言实现的删除指定字符的函数:
```
void delete_c(char *str, char c) {
int i, j;
for (i = j = 0; str[i] != '\0'; i++) {
if (str[i] != c) { // 如果当前字符不是要删除的字符
str[j++] = str[i]; // 将当前字符复制到新的字符串中
}
}
str[j] = '\0'; // 将新字符串的结尾标记设置为'\0',表示字符串结束
}
```
这个函数的实现很简单,它遍历整个字符串,将不等于指定字符的字符复制到一个新的字符串中,最后将新字符串的结尾标记设置为'\0',表示字符串结束。这样,原来的字符串就被修改了,不再包含指定字符。
你可以在程序中调用这个函数,例如:
```
char str[] = "hello world";
delete_c(str, 'l');
printf("%s\n", str); // 输出结果为:heo word
```
在这个例子中,我们删除了字符串中的所有'l'字符。
### 回答2:
下面是C语言实现的delete_c函数:
```c
#include <stdio.h>
void delete_c(char *str, char c) {
int i, j;
for (i = j = 0; str[i] != '\0'; i++) {
if (str[i] != c) {
str[j] = str[i];
j++;
}
}
str[j] = '\0';
}
int main() {
char str[100];
char c;
printf("输入一个字符串: ");
scanf("%s", str);
printf("输入要删除的字符: ");
scanf(" %c", &c); // 空格是为了忽略之前输入的换行符
delete_c(str, c);
printf("删除指定字符后的字符串为: %s\n", str);
return 0;
}
```
该函数会在给定的字符串中找到并删除指定的字符。它使用两个指针i和j来遍历字符串,并将不等于指定字符的字符移到前面。最后,在第j个位置添加字符串的结束符'\0'以表示字符串的结束。运行上述程序,您可以输入一个字符串和要删除的字符,然后输出将删除指定字符之后的字符串。
### 回答3:
以下是用C语言编写的补充添加字符删除函数的实现:
```c
#include <stdio.h>
void delete_c(char* str, char c)
{
int i, j;
// 遍历字符串中的每一个字符
for (i = 0, j = 0; str[i] != '\0'; i++) {
// 如果字符不是指定的字符 c,则将其保留在字符串中
if (str[i] != c) {
str[j++] = str[i];
}
}
// 将字符串的最后一个字符设置为 '\0' 以表示字符串的结束
str[j] = '\0';
}
int main()
{
char str[100];
char c;
printf("请输入字符串:");
gets(str);
printf("请输入需要删除的字符:");
scanf("%c", &c);
delete_c(str, c);
printf("删除指定字符后的字符串为:%s\n", str);
return 0;
}
```
在上述代码中,`delete_c`函数的参数为需要进行删除操作的字符串和指定的字符 c。该函数中使用两个变量 i 和 j,其中 i 用于遍历原始字符串中的每一个字符,而 j 则用于存储删除指定字符后的新字符串。
在循环中,如果当前字符不是指定的字符 c,则将其保留在新字符串中,并将 j 的值增加 1。当遇到指定的字符 c 时,将直接跳过该字符,因此相当于删除了该字符。
循环结束后,将新字符串的最后一个字符设置为`\0`,以表示字符串的结束。最后通过主函数中的`printf`函数打印删除指定字符后的字符串。
阅读全文
相关推荐

















