hello there.

i'm trying to code a basic file class. but for the moment, it seems that my program is choking on the constructor of the class. it compliles fine, but wheni run it it hangs on just on the str cpy function strcpy(SZ_fpath, PARAM_path)


Code:
class C_fsystem
{
 protected:
           char SZ_fpath [200];
           char SZ_fname [200];
           char SZ_fexten [100];
           char TMP_path[1000];
 public:
           void setPath(char* TMP_buffer){strcpy(SZ_fpath, TMP_buffer);}
           void setName(char* TMP_buffer){strcpy(SZ_fname, TMP_buffer);}
           void setExten(char* TMP_buffer){strcpy(SZ_fexten, TMP_buffer);}
           char* fullName(void)
           {
           strcpy(TMP_path, SZ_fpath);
           strcat(TMP_path, SZ_fname);
           strcat(TMP_path, ".");
           strcat(TMP_path, SZ_fexten);
           return(TMP_path);
           }
           C_fsystem(char PARAM_path[100], char PARAM_name[100], char PARAM_exten[50]);
};

C_fsystem::C_fsystem(char PARAM_path[100], char PARAM_name[100], char PARAM_exten[50])
{
cout<<"worx"<<endl;
cout<<PARAM_path<<endl;
cout<<PARAM_name<<endl;
cout<<PARAM_exten<<endl;
strcpy (SZ_fpath,PARAM_path);
strcpy (SZ_fpath,PARAM_name);
strcpy (SZ_fpath,PARAM_exten);
}



//main

int main()
{
  C_fsystem myfile("D:\\my documents 2\\robin\\cpp sources\\terraserve\\", "main", "cpp");
  cout<<myfile.fullName();
  cout<<"object declared"<<endl;
  myfile.setPath("D:\\my documents 2\\robin\\cpp sources\\terraserve\\");
  cout<<"setpath done"<<endl;
  myfile.setName("file1");
  cout<<"setname done"<<endl;
  myfile.setExten("cpp");
  cout<<myfile.fullName()<<endl;
  cout<<"funtion returned";
  cin.get();
  exit(0);
}
why do c++ strings have to be so complicated...