用C语言编写,删除字符串中字符。输入一个字符串s,再输入一个字符c,将字符串中的所有字符c删除。要求定义并调用函数delchar(s,c),它的功能是将字符串中所有c字符删除。
时间: 2024-12-18 09:01:19 浏览: 3
在C语言中,我们可以定义一个函数`delchar`来达到这个目的。下面是一个示例,它会遍历整个字符串,遇到目标字符就跳过,然后返回已处理的新字符串。请注意,此方法不会改变原始字符串,而是创建一个新的字符串。
```c
#include <stdio.h>
#include <stdlib.h> // 用于动态内存分配
#include <string.h>
// 函数声明
char* delchar(const char* s, char c);
// 实现 delchar 函数
char* delchar(const char* s, char c) {
size_t length = strlen(s);
char* new_str = (char*)malloc(length + 1); // 动态分配空间
if (!new_str) { // 检查内存分配是否成功
perror("Memory allocation failed");
return NULL;
}
int i = 0;
while (i < length) {
if (s[i] != c) {
new_str[i] = s[i];
}
i++;
}
new_str[i] = '\0'; // 结尾添加空字符
return new_str;
}
int main() {
char s[] = "Hello, World!";
char c = 'o';
char* result = delchar(s, c);
if (result) {
printf("New string without '%c': %s\n", c, result);
free(result); // 释放动态分配的内存
} else {
printf("Failed to create a new string.\n");
}
return 0;
}
阅读全文