C++ 中String 替换指定字符串的实例详解
时间: 2024-06-12 16:06:17 浏览: 100
在C语言中,可以使用字符串函数来替换指定字符串的实例。以下是一些常见的方法:
1. 使用strchr函数查找字符串中指定字符的位置,然后使用strcpy函数和strcat函数进行替换。例如:
```c
char str[50] = "hello world";
char *pos;
pos = strchr(str, 'l');
strcpy(pos, "p");
strcat(str, pos+1);
printf("%s", str); //输出 "heppo world"
```
2. 使用strstr函数查找字符串中指定子串的位置,然后使用strcpy函数和strcat函数进行替换。例如:
```c
char str[50] = "hello world";
char *pos;
pos = strstr(str, "llo");
strcpy(pos, "p");
strcat(str, pos+2);
printf("%s", str); //输出 "heplo world"
```
3. 使用strtok函数将字符串分割为多个子串,然后逐个比较子串,如果匹配则替换。例如:
```c
char str[50] = "hello world";
char *token;
char *new_str = "";
token = strtok(str, " ");
while(token != NULL){
if(strcmp(token, "world") == 0){
strcat(new_str, "earth");
}
else{
strcat(new_str, token);
}
strcat(new_str, " ");
token = strtok(NULL, " ");
}
printf("%s", new_str); //输出 "hello earth "
```
4. 使用正则表达式库(如PCRE)来匹配和替换字符串。例如:
```c
#include <pcre.h>
char str[50] = "hello world";
pcre *re;
const char *error;
int erroffset;
int ovector[30];
re = pcre_compile("world", 0, &error, &erroffset, NULL);
pcre_exec(re, NULL, str, strlen(str), 0, 0, ovector, 30);
memcpy(str+ovector[0], "earth", 5);
printf("%s", str); //输出 "hello earth"
```
以上是一些常见的方法,可以根据具体情况选择合适的方法进行字符串替换。
阅读全文