//
// Created by 刘彪 on 2020/2/29.
//
#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;
class words{
char *str;
public:
words(char *s){
str = new char[strlen(s)+1];
strcpy(str,s);
}
void disp(){
cout<<str<<endl;
}
char &operator[](int i){
return *(str+i);
}
};
int main(){
char *s = "china";
words word(s);
word.disp();
int n = strlen(s);
while(n>=0){
word[n-1] = word[n-1]-32;
n--;
}
word.disp();
return 0;
}
// 下标运算符的重载 p138 #include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;
class words{
int len;
char *str;
public:
words(char *s){
str = new char[strlen(s)+1];
strcpy(str,s);
len = strlen(s);
}
void disp(){
cout<<str<<endl;
}
char operator[](int i){
if(i>len-1){
cout<<"数组下标越界";
return ' ';
}
else return *(str+i);
}
};
int main(){
words word("Goodbye");
word.disp();
cout<<"位置1:";
cout << word[1] << endl;
cout<<"位置15:";
cout << word[15] << endl;
return 0;
}
// 下标运算符的重载 p155 自己:类首字母大写