|
|
发表于 2005-5-10 20:15:16
|
显示全部楼层
- #include <errno.h>
- #include <sys/types.h>
- #include <string.h>
- int str_replace(char *str, size_t n,
- const char *old,
- const char *new)
- {
- size_t old_len = strlen(old);
- size_t new_len = strlen(new);
- const char *end = str + n;
- while (str = strstr(str, old))
- {
- size_t len = strlen(str);
- if (str + len + new_len - old_len < end)
- {
- memmove(str + new_len, str + old_len, len + 1);
- memcpy(str, new, new_len);
- str += new_len;
- }
- else
- {
- errno = ENOSPC;
- return -1;
- }
- }
- return 0;
- }
复制代码
没有调试过的,你试试可不可以。 |
|