[]重载????
#include<iostream>
#include<string>
using namespace std;
class Words{
private:
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是多少,怎么又冒出个-32????????
n--;}
word.disp();
return 0;
}
[解决办法]
-32是把小写字母转换为大写字母.因为小写字母的ASCII是从97开始的,而大写字母的ASCII是从65开始的
s就是字符串"china"的长度,为5.
[解决办法]
int i=97;
int j=i-32;//j是个整形不需要转换
cout<<j;
char s='a';
char c=s-32;//可以看作将int转换成char
cout<<c;
c=97-32;//可以看作将int转换成char
cout<<c;