
求字符串的长度(C++编程)
要求:有关把字符串作为一个类定义,用成员函数求字符串长度。希望高手们尽快帮我解决这个问题,谢谢了啊!...
要求:
有关把字符串作为一个类定义,用成员函数求字符串长度。
希望高手们尽快帮我解决这个问题,谢谢了啊! 展开
有关把字符串作为一个类定义,用成员函数求字符串长度。
希望高手们尽快帮我解决这个问题,谢谢了啊! 展开
4个回答
展开全部
//完整程序,VC6.0编译通过
#include<iostream>
using namespace std;
#define MaxSize 500
class String
{
private:
char *ptr;
public:
String();
~String();
int strLen(String *str); //返回字符串长度
void SetString(String *str);//输入字符串
void OutString(String *str);//输出字符串
};
int main()
{
cout<<"请输入:"<<endl;
String t;
t.SetString(&t);
cout<<endl<<"长度:"<<endl;
cout<<t.strLen(&t);
cout<<endl<<"字符串:"<<endl;
t.OutString(&t);
cout<<endl;
return 0;
}
String::String()
{
ptr=new char;
ptr = '\0';
}
String::~String()
{
free(ptr);
}
int String::strLen(String *str)
{
char *p=(char *)str->ptr;
int j=0;
while(*p!='\0')
{
p++;j++;
}
return j;
}
void String::SetString(String *str)
{
char s[MaxSize];
cin>>s;
char *p=new char [strlen(s)+1];
strcpy(p,s);
str->ptr = p;
}
void String::OutString(String *str)
{
cout<<str->ptr;
}
#include<iostream>
using namespace std;
#define MaxSize 500
class String
{
private:
char *ptr;
public:
String();
~String();
int strLen(String *str); //返回字符串长度
void SetString(String *str);//输入字符串
void OutString(String *str);//输出字符串
};
int main()
{
cout<<"请输入:"<<endl;
String t;
t.SetString(&t);
cout<<endl<<"长度:"<<endl;
cout<<t.strLen(&t);
cout<<endl<<"字符串:"<<endl;
t.OutString(&t);
cout<<endl;
return 0;
}
String::String()
{
ptr=new char;
ptr = '\0';
}
String::~String()
{
free(ptr);
}
int String::strLen(String *str)
{
char *p=(char *)str->ptr;
int j=0;
while(*p!='\0')
{
p++;j++;
}
return j;
}
void String::SetString(String *str)
{
char s[MaxSize];
cin>>s;
char *p=new char [strlen(s)+1];
strcpy(p,s);
str->ptr = p;
}
void String::OutString(String *str)
{
cout<<str->ptr;
}
展开全部
试试这个:
class String{
public:
String():str(0),l(0){}
String(const char* s);
String(const String& s);
~String();
void display();
int length(){return l;}
private:
char* str;
int l;
};
String::String(const char* s){
int i=0;
while(s[i]!='\0') i++;
str=new char[i+1];
int j=0;
while(j<=i)
str[j]=s[j];
l=i;
}
String::String(const String& s){
int i=0;
str=new char[s.l+1];
int j=0;
while(j<=s.l+1)
str[j]=s.str[j];
this->l=s.l;
}
String::~String(){
delete[] str;
}
void String::display(){
for(int i=0;i<l;i++)
printf("%c",str[i]);
printf("\n");
}
class String{
public:
String():str(0),l(0){}
String(const char* s);
String(const String& s);
~String();
void display();
int length(){return l;}
private:
char* str;
int l;
};
String::String(const char* s){
int i=0;
while(s[i]!='\0') i++;
str=new char[i+1];
int j=0;
while(j<=i)
str[j]=s[j];
l=i;
}
String::String(const String& s){
int i=0;
str=new char[s.l+1];
int j=0;
while(j<=s.l+1)
str[j]=s.str[j];
this->l=s.l;
}
String::~String(){
delete[] str;
}
void String::display(){
for(int i=0;i<l;i++)
printf("%c",str[i]);
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把这个函数做为一个成员函数就可以了
函数实现也就是指针从头到尾的所用的次数
返回就可以了
函数实现也就是指针从头到尾的所用的次数
返回就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
tring::lenth()放在你定义的类里作为public函数再设置个 私有变量 就ok了
这题出的没意义
这题出的没意义
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询