待解决的问题

3 篇文章 0 订阅

1.输出的结果是什么?p82

#include <iostream>
using namespace std;
void f2(int a[],int k){
    int n,t,j;
    for (j=0;j<k-1;j++)
        for(n=0;n<k-j;n++)
            if (a[n]<a[n+1])
            {t=a[n];a[n]=a[n+1];a[n+1]=t;}
}

int main(){
    int i;
    int x[]={50,30,60,10,80};
    f2(x,5);
    for(i=0;i<5;i++) {cout<<x[i]<<"\t";}
    cout<<endl;
    return 0;
}



2.

#include <iostream>
using namespace std;
class strCyton{
public:
    char *str;
    strCyton(char p[50]={'h','e','l','l','o','\0'}){
        str = p;
    }
    friend char* operator+=(strCyton &str,strCyton str1);
    friend char* operator=(strCyton str,strCyton str1);
    bool operator==(strCyton str1);
    void show(){
        cout<<str<<endl;
    }
};
char* operator+=(strCyton &str,strCyton str1){
    str.str  = new char [strlen(str.str)+strlen(str1.str)+1];
    char *temp = str.str;
    while(str.str++);
    while(str.str=str1.str++);
    str.*str='\0';
    str.str=temp;
    return str.str;
}
char* operator=(strCyton str,strCyton str1){
    str.str=str1.str;
    return str.str;
}
bool strCyton::operator==(strCyton str1) {
    if (strcmp(str,str1.str)==0){
        return true;
    }else{
        return false;
    }
}
int main(){
    strCyton st,st1("world");
    st+=st1; st.show();
    st=st1; st.show();
    cout<<(st==st1)<<endl;
    return 0;
}

3.

#include <iostream>
#include <string>
using namespace std;
class myStringCpp{
    char *str;
public:
    myStringCpp(){
        str = new char [1];
    }
    myStringCpp(char *p){
        str=p;
    }
    friend myStringCpp& operator+=(myStringCpp& s1,myStringCpp& s2);
    friend ostream& operator<<(ostream& os,myStringCpp &s1);

};
myStringCpp& operator+=(myStringCpp& s1,myStringCpp& s2){
    myStringCpp s3;
    s3.str = new char [strlen(s1.str)+strlen(s2.str)+1];
    strcpy(s3.str,s1.str);
    strcat(s3.str,s2.str);
    return s3;
}
ostream& operator<<(ostream &os,myStringCpp &s1){
    return os<<s1.str;
}
using namespace std;
int main(){
    myStringCpp ss1("hello"),ss2("world");
    ss1+=ss2;
    cout<<ss1<<endl;
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值