C++中字符串replace
时间: 2023-09-08 13:14:46 浏览: 94
C语言中没有内置的字符串替换函数。但是,我们可以自己编写一个函数来实现字符串替换。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void replace(char *str, char *old, char *new) {
char *pos, temp[1000];
int index = 0;
int len1 = strlen(old);
int len2 = strlen(new);
while ((pos = strstr(str, old)) != NULL) {
strncpy(temp + index, str, pos - str);
index += pos - str;
strncpy(temp + index, new, len2);
index += len2;
str = pos + len1;
}
strcpy(temp + index, str);
strcpy(str, temp);
}
int main() {
char str[] = "Hello World! This is a sample string.";
printf("Original: %s\n", str);
replace(str, "sample", "demo");
printf("Replaced: %s\n", str);
return 0;
}
```
输出结果:
```
Original: Hello World! This is a sample string.
Replaced: Hello World! This is a demo string.
```
此示例中,我们定义了一个名为`replace`的函数,该函数接受三个参数:`str`表示要替换的字符串,`old`表示要替换的子字符串,`new`表示替换为的新字符串。
该函数使用`strstr`函数在字符串中查找子字符串的位置,并使用`strncpy`函数将原始字符串的一部分复制到一个临时缓冲区中。然后,将新字符串复制到缓冲区中。最后,将缓冲区中的内容复制回原始字符串。
阅读全文