001
09.06.2004, 18:57 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft... (Operator)
|
auf die schnelle ohne gross zu testen das golfen spar ich mir jetzt gerade mal hoffe der code ist diesmal in deinem sinne eingerückt
C++: |
void ersetzen(char **inp,int *inp_l){ char neu[4]="ha!"; int offset,x=strlen(neu),z=strlen(*inp); char *str=*inp,*tmp;
while(str=strstr(str,"h")){
if(str!=*inp && !isspace(*(str-1)) && *(str+1) && !isspace(*(str+1)) && tolower(*(str+1))!='a' && tolower(*(str+1))!='e' && tolower(*(str+1))!='i' && tolower(*(str+1))!='o' && tolower(*(str+1))!='u'){ z+=2; if(*inp_l<=z){ offset=str-*inp; tmp=(char*)realloc(*inp,sizeof(char)*(z+1)); if(tmp){*inp=tmp;*inp_l=z+1;str=*inp+offset;} else return; } memmove(str+3,str+1,sizeof(char)*strlen(str)); memcpy(str,neu,sizeof(char)*x); } ++str; } }
int main(){
int inp_l=60; char *inp;
inp=(char*)malloc(sizeof(char)*inp_l);
sprintf(inp,"hallo hihsch whche mahleh");
printf("%s\n",inp); ersetzen(&inp,&inp_l); printf("%s\n",inp); free(inp); }
|
-- ...fleißig wie zwei Weißbrote |