C语言 字符串替换 replace
用的函数strlen 和mallo 实现c语言的replace
int *replace(char *p, char *dest, char *target){
int d_=strlen(dest);int t_ = strlen(target);int p_ = strlen(p);
int compare = t_ - d_;
int index[ p_ / d_ +1];
int count=0;
for (int i = d_-1; i <p_ ; ++i) {
if (p[i] == dest[d_-1]){
int tmp=d_;
int ok = 1;
for (int j = i; j >i-d_; --j) {
tmp--;
if (dest[tmp]!= p[j]) { ok=0; };
}
if (ok) {index[count] = i-d_+1 ;count++ ;}
}
}
int currentLen=p_+compare*count;
char *cc = (char *) malloc(( p_+compare*count +1) *sizeof(char));
int s=0,c=0;
for (int k = 0; k < currentLen; ) {
if ( index[c] ==k){
for (int i = 0; i < t_; ++i) {
cc[k] = target[i];
}
s+=d_;
k+=t_;
c++;
continue;
}
cc[k] = p[s];
s++;
k++;
}
cc[currentLen] = '\0';
// printf("%s", cc);
return 0;
}
喜欢的话请关注我,会不定时更新一些有用的东西