几个非常有用的C字符串函数
#include <string.h> #include <stdlib.h> void remchars(char *str, char c); void remcnks(char *str, char *cnk); void replchars(char *str, char c1, char c2); void replcnks(char *str, char *cnk1, char *cnk2); void reverse(char *str); //remove specified characters from a string void remchars(char *str, char c) { char *pos; while(pos = strchr(str,c)) memmove(pos, pos + 1, strlen(pos)); } //remove specified chunks from a string void remcnks(char *str, char *cnk) { char *pos; int clen = strlen(cnk); while(pos = strstr(str, cnk)) memmove(pos, pos + clen, strlen(pos) - clen + 1); } //replace specified characters in a string void replchars(char *str, char c1, char c2) { char *pos; while(pos = strchr(str, c1)) *pos = c2; } //replace specified chunks in a string (size-independent, just remember about memory) void replcnks(char *str, char *cnk1, char *cnk2) { char *pos; int clen1 = strlen(cnk1), clen2 = strlen(cnk2); while(pos = strstr(str, cnk1)) { memmove(pos + clen2, pos + clen1, strlen(pos) - clen1 + 1); memcpy(pos, cnk2, clen2); } } //reverse a string void reverse(char *str) { int i; int len = strlen(str) - 1; int mid = (len % 2) ? (len / 2) : ((len + 1) / 2); for(i = 0; i <= mid; ++i) { char buf = str[i]; str[i] = str[len - i]; str[len - i] = buf; } }