DaSharm
Гость
|
|
« : 25-02-2005 20:12 » |
|
мне нужно написать аналог strtok (в конкретном примере нет возможности использования strtok). Т. е. нужно написать свою ф-цию, что полностью заменяет strtok. Я написал что-то, но сам не понимаю где глюк. Ф-ция типа работает, но страшно глючит...Помогите пожалуйста...
мой пример:
char *valtok; DWORD iv;
char *mstrtok(char *tok, DWORD ltok,char *delim) { char *mresult; DWORD f;
if(!lstrcmp(tok,NULL)){ } else { valtok=(char*)GlobalAlloc(0,ltok+1); lstrcpyn(valtok,tok,ltok+1); }
for(DWORD i=iv;i<ltok;i++) { if(valtok[i]==delim[0]){
mresult=(char*)GlobalAlloc(0,i-iv);
for(f=0;f<i;f++) { mresult[f]=valtok[iv+f]; } mresult[i-iv]=0x00; iv+=(i+1); return mresult; }
}
return valtok; }
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char a[]="1aagf|2abcabc|3ee|aaa"; char b='|'; MessageBox(0,mstrtok((char*)&a,strlen((char*)&a),(char*)&b),NULL,0); MessageBox(0,mstrtok(NULL,strlen((char*)&a),(char*)&b),NULL,0); MessageBox(0,mstrtok(NULL,strlen((char*)&a),(char*)&b),NULL,0); return 0; }
|