я PHP програмер, и с С неочень дружу.. решил написать на С функс. explode ( www.php.net/explode )#include <stdio.h>
#include <conio.h>
#include <string.h>
void * explode(char *by,char *str, int nr){
char *buff,*buff2;
char a[50][50];
int y = 0, from = 0,i,x,c;
sprintf(buff,"%s%s",str,by);
strcpy(str,buff);
c=strlen(str);
for(i=0; i<c; i++){
sprintf(buff,"%c",str[i]);
if(!strcmp(buff,by)){
for(x=from; x<i; x++){
sprintf(buff,"%c",str[x]);
sprintf(buff2,"%s%s",a[y],buff);
strcpy(a[y],buff2);
}
y++;
from = x+1;
}
}
return a[nr];
}
int main(void){
char str[30]="privet|kafffffk|dela";
clrscr();
printf("(%s)",explode("|",str,0));
getch();
return 0;
}
при вервом запуске пашет..
запускаеш дважды, он запоминает то что была перет этим запуском.. и так до безконечности..
Вопрос, почему?
Как исправить?