假设有一个字符串,需要将里面包含 sim1 替换为 sim 。
这个事情如果用正则表达式来处理,那极为简单。下面使用 C 语言来实现,代码如下:
[C++] 纯文本查看 复制代码 #include <stdio.h>
#include <string.h>
int main()
{
char str[] = "abcdefsimokaeikjfasim1ekdicakdlasimldaisim1eeazkadslsimlaisime1azsdfa";
char *p;
char *p1;
int i = 0;
int len = strlen(str);
int tmplen;
char tmp[len + 1];
char tmp2[len + 1];
memset(tmp, '\0', len+1);
memset(tmp2, '\0', len+1);
strcpy(tmp2, str);
while ((p1 = strstr(tmp2, "sim1"))) {
p = tmp2;
while (p != (p1 + 3)) {
tmp[i] = *p;
p++;
i++;
}
p1 += 4;
tmplen = strlen(p1);
memmove(tmp2, p1, tmplen);
p1 = tmp2;
p1 += tmplen;
memset(p1, '\0', len+1-tmplen);
}
p = tmp;
p += i;
strcat(p, tmp2);
printf ("%s\n", str);
printf ("%s\n", tmp);
return 0;
}
运行输出:[beyes@beyes c]$ ./dele
abcdefsimokaeikjfasim1ekdicakdlasimldaisim1eeazkadslsimlaisime1azsdfa
abcdefsimokaeikjfasimekdicakdlasimldaisimeeazkadslsimlaisime1azsdfa |