主题:[讨论]C++ 一个模仿String的程序
本人新手,突然头脑发热想要写一个模仿String的程序,写完后运行发现使用Right()和Left()时程序会崩溃...可能是对指针掌握的不是很好,请大家看看,哪里出错了.新手学了两周第一次写这类程序,还请各位不要拍砖....
#include <iostream>
#include <string.h>
using namespace std;
//----------------------------------------
class CMyString
{
private:
char chMain[100];
char chRight[100];
char chLeft[100];
public:
int iCharConut;
void operator=(const char* chMains)
{
this->iCharConut=0;
strcpy(chMain,chMains);
this->iCharConut=strlen(chMains);
}
char* Right(int n)
{
for(int a=iCharConut-n;a<iCharConut;a++)
chRight[a]=chMain[a];
char*re_chRight=NULL;
for(int q=0;q<n;q++)
*re_chRight+=chRight[q];
return (char*)re_chRight;
}
char* Left(int n)
{
for(int s=0;s>n;s++)
chLeft[s]=chMain[s];
char*re_chLeft=NULL;
for(int p=0;p<n;p++)
*re_chLeft+=chRight[p];
return (char*)re_chLeft;
}
};
//------------------------------------------------
void main()
{
CMyString strTest;
strTest="abc";
cout<<strTest.Right(2);
}
#include <iostream>
#include <string.h>
using namespace std;
//----------------------------------------
class CMyString
{
private:
char chMain[100];
char chRight[100];
char chLeft[100];
public:
int iCharConut;
void operator=(const char* chMains)
{
this->iCharConut=0;
strcpy(chMain,chMains);
this->iCharConut=strlen(chMains);
}
char* Right(int n)
{
for(int a=iCharConut-n;a<iCharConut;a++)
chRight[a]=chMain[a];
char*re_chRight=NULL;
for(int q=0;q<n;q++)
*re_chRight+=chRight[q];
return (char*)re_chRight;
}
char* Left(int n)
{
for(int s=0;s>n;s++)
chLeft[s]=chMain[s];
char*re_chLeft=NULL;
for(int p=0;p<n;p++)
*re_chLeft+=chRight[p];
return (char*)re_chLeft;
}
};
//------------------------------------------------
void main()
{
CMyString strTest;
strTest="abc";
cout<<strTest.Right(2);
}