#include <stdio.h>
void squeeze(char s[], char t[],int s_ln, int d_ln);
int getlines(char s[]);
int main(){
int i;
int s_ln, d_ln;
char string[1000];
char del[1000];
printf("input string : ");
s_ln = getlines(string);
printf("input a string to delete : ");
d_ln = getlines(del);
squeeze(string,del,s_ln,d_ln);
printf("%s",string);
return 0;
}
//getlin func
int getlines(char s[]){
int i,c;
for(i = 0; i < 1000 && (c=getchar())!=EOF ; i++){
s[i] = c;
if(c == '\n'){
s[i] = c;
break;
}
}
s[++i] = '\0';
return i;
}
//squeeze func
void squeeze(char s[], char d[], int s_ln, int d_ln){
int i,j,k,l;
i = 0;
while(s[i] != '\0'){//문자열이 끝날때 까지
if(s[i] == d[0]){//첫글자가 같으면
k = 0;
for(j = 0; j <= d_ln-2; j++){ //문자열 체크
if(s[i+k] != d[j]){//중간에 다를경우
++j;
break;
}
k++;
}
if(k == j){ //지울 문자열이 있으면
for(l = i; l+k <= s_ln; l++)
s[l] = s[l+k]; //문자열을 앞으로 땡김
}
}
i++;
}
}
보시고 부족한점이 발견되시면 조언 부탁드립니다.
댓글 0