strlen和str.length()的区别 .

 两者都是求字符串的长度,但strlen( )的参数必须是char* ;而 str.length( )是string类对象str调用的成员函数,所以它们用在不同的地方;

char* ch="asdfsafas";
string str="adfadf";
cout<<str.length();
// cout<<strlen(str);  出错
cout<<strlen(ch);
// cout<<ch.length();出错

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验报告 1、定义一个圆类(Circle),属性为半径(radius)、圆周长和面积,操作为输入半径并计算 周长、面积,输出半径、周长和面积。 #include<iostream.h> const double PI=3.1415; class Circle{ double radius,length,area; public: Circle(double r=0){ setr(r); length=2*PI*radius; area=PI*radius*radius; } void print(){ cout<<"radius="<<radius<<endl; cout<<"length="<<length<<endl; cout<<"area="<<area<<endl; } void setr(double r){ radius=r; } }; void main(){ Circle c1(10),c2(c1); c1.print(); c2.print(); } 2、定义一个Point类表示平面上的一个点,再定义一个Rectangle类表示平面上的矩形, 用Point类的对象作为Rectangle类的成员描述平面上矩形的顶点坐标。要求类Point中有 相应的成员函数可以读取点的坐标值,类Rectangle中含有一个函数,用以计算并输出矩 形的面积及顶点坐标。在主函数中对类Rectangle进行测试。 #include<iostream.h> #include<math.h> class Point{ int x,y; public: Point(int a=0,int b=0) { x=a; y=b; } int getx(){return x;} int gety(){return y;} void print() { cout<<'('<<x<<','<<y<<')'; } }; class Rectangle{ Point p1,p2,p3,p4; public: Rectangle(int a,int b,int c,int d):p1(a,b),p2(c,b),p3(a,d),p4(c,d) { } void f() { cout<<"矩形顶点坐标:"<<endl; p1.print();cout<<'\t';p2.print();cout<<endl; p3.print();cout<<'\t';p4.print();cout<<endl; int s=abs(p1.getx()-p2.getx())*abs(p1.gety()-p3.gety()); cout<<"矩形面积:"<<s<<endl; } }; void main() { Rectangle r(2,6,8,10); r.f(); } 3、定义一个类,用于删除字符串中多余的字符,使其中的字符互不相同,具体要求如下 : (1)类的数据成员(字符串)用指针表示,并在构造函数中根据参数的实际情况为该成 员指针申请类存空间。 (2)删除多余字符串时,只能在原字符串空间中进行,不得借助其他辅助空间。 #include<iostream.h> #include<string.h> class S{ char *str; public: S(char *s) { str=new char[strlen(s)+1]; strcpy(str,s); } void f() { char *p1=str,*p2,*p3; while(*p1) { p2=p1+1; while(*p2) if(*p1==*p2) { p3=p2; while(*p3) { *p3=*(p3+1); p3++; } } else p2++; p1++; } } void print() { cout<<str<<endl; } ~S() { delete []str; } }; void main() { char s[100]; cin.getline(s,100); S t(s); cout<<"原字符串为:\n"; t.print(); t.f(); cout<<"删除后的字符串为:\n"; t.print(); } 4、定义一个类Array,实现二维数组每列元素按各元素的各位数字之和从小到大排序。 要求用一个专门的函数求数组元素的各位数字之和。 #include<iostream.h> #include<stdlib.h> class Array{ int a[4][3]; public: Array(int p[][3],int n) { for(int i=0;i<n;i++) for(int j=0;j<3;j++) a[i][j]=p[i][j]; } int f(i

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值