C++ 中String 替换指定字符串的实例详解
时间: 2024-06-12 21:06:21 浏览: 210
C++课程设计 —— 字符串操作
在 C 语言中,可以使用函数库中的函数来实现字符串替换,例如使用 `strtok()` 函数来分割字符串,使用 `strcpy()` 和 `strcat()` 函数来拷贝和连接字符串。
以下是一个示例代码,用于在字符串中替换指定的字符串实例:
```c
#include <stdio.h>
#include <string.h>
void replace(char *str, char *orig, char *rep)
{
char buffer[100];
char *p;
while ((p = strstr(str, orig)))
{
strncpy(buffer, str, p - str);
buffer[p - str] = '\0';
strcat(buffer, rep);
strcat(buffer, p + strlen(orig));
strcpy(str, buffer);
}
}
int main()
{
char str[100] = "hello world! hello world! hello world!";
char orig[] = "world";
char rep[] = "universe";
printf("Before: %s\n", str);
replace(str, orig, rep);
printf("After: %s\n", str);
return 0;
}
```
输出结果如下:
```
Before: hello world! hello world! hello world!
After: hello universe! hello universe! hello universe!
```
在上面的代码中,`replace()` 函数接收三个参数:原始字符串 `str`、要替换的字符串 `orig` 和替换字符串 `rep`。该函数使用 `strstr()` 函数找到字符串 `str` 中第一个出现的字符串 `orig` 的位置,然后使用 `strncpy()` 函数将位置之前的字符串复制到缓冲区 `buffer` 中,并在缓冲区中添加替换字符串 `rep`。然后使用 `strcat()` 函数将剩余的字符串添加到缓冲区中,并使用 `strcpy()` 函数将缓冲区中的字符串复制回原始字符串 `str` 中。这样就可以将字符串中所有出现的字符串 `orig` 替换为字符串 `rep`。
阅读全文