Saya pernah buat program parsing untuk me-milah2 suatu kalimat menjadi kata seperti
dibawah ini :
#include <iostream.h>
#define awal 0
#define nawal 1
void pars(char *cstr, char cs, int &iargc, char **cargv)
{
int cstate=awal,sstate=awal;
char *c;
iargc=0;
c=cstr;
while(*c!=0)
{
if((*c==cs))
{
if(sstate==awal)
{
*c=0; // <--- menjadi masalah
cstate=awal;
sstate=nawal;
}
}
else
{
if(cstate==awal)
{
cargv[(iargc)++]=c;
cstate=nawal;
sstate=awal;
}
}
c++;
}
}
void main()
{
char *test="satu dua tiga empat lima enam";
char cs=32;
int jumlah;
char *argv[8];
pars(test,' ',jumlah,argv);
cout<< argv[0] <<" "<<argv[1] <<endl;
}
Pernah saya compile dan berjalan baik di Borland C++ 3.1 , tapi kok di GNU enggak mau
ya ?
di compile sih OK tapi ketika di execute ./a.out kok error segment mulu.
masalahnya terletak di *c = 0 ; saat saya kasih NULL . kira2 apa nya yang salah ya ?
saya masih baru pake
G++
thanks
--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]