如何用C语言编写一个函数,功能是在给定的字符串中替换所有特定的字符为另一个预设字符?
时间: 2024-12-16 19:32:14 浏览: 49
在C语言中,由于字符串本质上是字符数组,你需要遍历整个数组并逐个字符进行比较和替换。这里有一个基本的示例,展示了如何实现这个功能:
```c
#include <stdio.h>
#include <string.h>
char* replace_char(char *str, char old_char, char new_char) {
// 获取字符串长度
int len = strlen(str);
// 创建新字符串,比原字符串长1是因为要添加新的终止符'\0'
char* new_str = (char*)malloc(len + 1);
// 检查新字符串是否成功分配内存
if (!new_str) {
printf("Memory allocation failed.\n");
return NULL;
}
// 使用新字符串并逐个字符检查替换
for (int i = 0; i < len; i++) {
if (str[i] == old_char) {
new_str[i] = new_char;
} else {
new_str[i] = str[i];
}
}
new_str[len] = '\0'; // 添加终止符
return new_str;
}
// 示例用法
int main() {
char* original_str = "Hello, World!";
char old_char = 'o';
char new_char = '*';
char* replaced_str = replace_char(original_str, old_char, new_char);
if (replaced_str != NULL) {
printf("Replaced string: %s\n", replaced_str);
free(replaced_str); // 释放内存
}
return 0;
}
```
这个函数会在给定的`str`中查找旧字符`old_char`并替换成`new_char`。请注意,在实际应用中,为了避免内存泄漏,记得在完成后释放`new_str`所占的内存。
阅读全文
相关推荐


















