Before seeing the solution make sure that you tried enough. Don’t paste the whole code, just find out the logic. If you stuck in trouble, just inform me on comment.
/**Bismillahir Rahmanir Rahim.**/ #include <stdio.h> #include <string.h> int Index(char t[], char p[]) { int k=-1, r, s, max, l, m, cnt, i; s = strlen(t); r = strlen(p); max = s-r+1; for(i=0; i<max; i++) { if(t[i]==p[0]) { for(l=1, cnt=1, m=i+1; l<r; l++, m++) { if(p[l]==t[m]) cnt++; else break; } if(cnt==r) { k = i; break; } } } return k; } char *DELETE(char t[], int k, int lnth) { int i, j; for(j=k,i=0; t[j+lnth]; j++,i++) { t[j]=t[j+lnth]; } t[j]='\0'; return t; } int main() { char *T=malloc(sizeof(char)*5000); char P[1000]; int lnth_P, k; printf("Please, Input String.\n"); gets(T); printf("Please, Input Sub-string Which You Want To Delete.\n"); gets(P); lnth_P = strlen(P); for(k=Index(T,P); k!=-1; ) { T = DELETE(T,k,lnth_P); k=Index(T,P); } printf("%s\n", T); free(T); return 0; }
0 comments:
Post a Comment
Note: only a member of this blog may post a comment.