我自己定义了一个字符串类,实现一些基本的功能,源程序如下:#include "iostream.h"class String{public: String();
void Reverse();
void PrintLine();
void WordCount();
void SubString(int i,int j);private: int length;
int words;
char *str;
}String::String()
{
cout<<"输入你的字符串"<<endl;
cin>>str;
int i=0;
while (str[i]!='\0')
i++;
length=i;
}void String::PrintLine()
{
cout<<"你的字符串是:"<<str<<endl;
}void String::Reverse()
{
int i,j;
char a;
for(i=0,j=length-1;i<j;i++,j--)
{
a=str[i];
str[i]=str[j];
str[j]=a;
}
}void String ::WordCount()
{
int i;
words=0;
for(i=0;i<length;i++)
if(str[i]>'z'&&str[i]<'A')
words++;
cout<<" 字符串有"<<words<<"个单词"<<endl;
}void String::SubString(int i,int j)
{
int k;
cout<<"子串是:";
for(k=i;k<=j;k++)
cout<<str[i];
}void main()
{
String s;
int i=0;
int j,k;
while(i!=5)
{
cout<<"从以下选择你需要的操作"<<endl;
cout<<" 1:将字符串倒转"<<endl;
cout<<" 2:输出字符串 "<<endl;
cout<<" 3:计算单词数 "<<endl;
cout<<" 4:获取子串 "<<endl;
cout<<" 5:退出 "<<endl;
cin>>i;
switch(i)
{
case 1:{
s.Reverse();break;
}
case 2:{
s.PrintLine();break;
}
case 3:
{
s.WordCount();break;
}
case 4:{
cout<<"输入起始位置j和结束位置k"<<endl;
cin>>j>>k;
s.SubString(j,k);
break;
}
case 5:{
cout<<"*********"<<"退出"<<"********"<<endl;
break;
}
}
}
}我在编译时总是出现这样的错误:
E:\c++作业\字符串类\STRING.CPP(17) : error C2533: 'String::String' : constructors not allowed a return type
E:\c++作业\字符串类\STRING.CPP(66) : error C2264: 'String::String' : error in function definition or declaration; function not called我不知道构造函数到底出了什么问题?
void Reverse();
void PrintLine();
void WordCount();
void SubString(int i,int j);private: int length;
int words;
char *str;
}String::String()
{
cout<<"输入你的字符串"<<endl;
cin>>str;
int i=0;
while (str[i]!='\0')
i++;
length=i;
}void String::PrintLine()
{
cout<<"你的字符串是:"<<str<<endl;
}void String::Reverse()
{
int i,j;
char a;
for(i=0,j=length-1;i<j;i++,j--)
{
a=str[i];
str[i]=str[j];
str[j]=a;
}
}void String ::WordCount()
{
int i;
words=0;
for(i=0;i<length;i++)
if(str[i]>'z'&&str[i]<'A')
words++;
cout<<" 字符串有"<<words<<"个单词"<<endl;
}void String::SubString(int i,int j)
{
int k;
cout<<"子串是:";
for(k=i;k<=j;k++)
cout<<str[i];
}void main()
{
String s;
int i=0;
int j,k;
while(i!=5)
{
cout<<"从以下选择你需要的操作"<<endl;
cout<<" 1:将字符串倒转"<<endl;
cout<<" 2:输出字符串 "<<endl;
cout<<" 3:计算单词数 "<<endl;
cout<<" 4:获取子串 "<<endl;
cout<<" 5:退出 "<<endl;
cin>>i;
switch(i)
{
case 1:{
s.Reverse();break;
}
case 2:{
s.PrintLine();break;
}
case 3:
{
s.WordCount();break;
}
case 4:{
cout<<"输入起始位置j和结束位置k"<<endl;
cin>>j>>k;
s.SubString(j,k);
break;
}
case 5:{
cout<<"*********"<<"退出"<<"********"<<endl;
break;
}
}
}
}我在编译时总是出现这样的错误:
E:\c++作业\字符串类\STRING.CPP(17) : error C2533: 'String::String' : constructors not allowed a return type
E:\c++作业\字符串类\STRING.CPP(66) : error C2264: 'String::String' : error in function definition or declaration; function not called我不知道构造函数到底出了什么问题?
解决方案 »
- 请教 RichEdit5.0 打印问题,急急急!
- 请问谁能帮忙介绍点儿vc操作office的资料呀
- 求<深入浅出MFC>
- stack around variable "strMacro" corrupted是什么问题
- CDialog的对话框上怎么用滚动条??
- 高手请进,关于主框架和子框架中菜单的动态增减问题(在线等待)
- 谁翻译的《COM COM+从入门到精通》散分
- MFC程序读取工业摄像头
- 给你一百分,简单问题等着你
- 请高手指点:那里可以找到wsock32.dll的源代码,如果那位有发请给小弟,不胜感激
- 请教datagrid连接数据库的问题?
- DataGrid control! 怎么得到选中多行的信息?
void Reverse();
void PrintLine();
void WordCount();
void SubString(int i,int j);private: int length;
int words;
char *str;
};//注意:这里必须有分号
//
}; // 类定义后面要加分号。
E:\vcvc\dfg.cpp(6) : error C2264: 'String::String' : error in function definition or declaration; function not called就是类后面的哪个分号
class String{
//
}; // 类定义后面要加分号。