求助:C++一个输出问题
目的:将"started in lower case"中空格去掉,并且以大写字母输出,即"STARTEDINLOWERCASE"
我用vc编译,但是输出不对,希望达人看一下!!!
#include<string>
#include<iostream>
using namespace std;
class mystring :public string
{
public:
mystring (char *x);
void upper (void );
void removewhiteplace (void);
};
mystring::mystring(char *x):string(x)
{
}
void mystring::upper(void)
{
char *x;
int n=length();
int index;
x= new char[n+1];
for(index=0;index<n;++index)
{
x[index]=toupper(x[index]);
}
replace(0,n,x,n);
delete []x;
}
void mystring::removewhiteplace(void)
{
int n;
while(n!=string::npos)
{
n=find(" ");
if(n!=string::npos)
{
erase(n,1);
}
}
}
void main(void)
{
mystring x("started in lower case");
x.upper();
x.removewhiteplace();
cout<<x;
}
问题点数:20、回复次数:3Top
1 楼gflpower(燕赤侠)回复于 2006-03-03 12:32:57 得分 0
//删除空格 没有转为大写
void CLxDlg::DelSpaceInstr(CString &str)
{
while (str.Find(" ") > 0 )
{
str.Delete(str.Find(" "));
}
}Top
2 楼gflpower(燕赤侠)回复于 2006-03-03 12:34:01 得分 0
行了空格也删除 最后转换为大写了
void CLxDlg::DelSpaceInstr(CString &str)
{
while (str.Find(" ") > 0 )
{
str.Delete(str.Find(" "));
}
str.MakeUpper();
}Top
3 楼Cccufo(Ccc)回复于 2006-03-03 12:56:01 得分 0
#include<string>
#include<iostream>
using namespace std;
class mystring :public string
{
public:
mystring (char *x);
void upper (void );
void removewhiteplace (void);
};
mystring::mystring(char *x):string(x)
{
}
void mystring::upper(void)
{
char *x;
int n=length();
int index;
x= new char[n+1];
strcpy(x,data());
for(index=0;index<n;++index)
{
x[index]=toupper(x[index]);
}
replace(0,n,x,n);
delete []x;
}
void mystring::removewhiteplace(void)
{
int n;
while(n!=string::npos)
{
n=find(" ");
if(n!=string::npos)
{
erase(n,1);
}
}
}
void main(void)
{
mystring x("my name is xu jun");
x.upper();
x.removewhiteplace();
cout<<x;
}
谢谢拉,问题已经解决,是遗忘了函数strcpy() Top




