| 热门文章 |
 |
|
| 编辑推荐 |
 |
|
|
|
|
|
作者:佚名
来源:不详 点击: 更新:2006-12-19
|
|
;+= c_str(); n--; } return temp; } -------------------------------------------- Q5:以继承的方法,重载 "- " 运算子,使它的功能为--删除特定字串。如果有重的字串,请删除最前的字串。
A5:须引入 class NString : public string { public: NString operator - (NString); };
NString NString::operator - (NString str) { NString temp; unsigned int pos1 = string::find(str); unsigned int len1 = str.length(); temp.assign(c_str()); if (pos1 > 0 && pos1 <= length()) temp.erase(pos1,len1); return temp; } -------------------------------------------- Q6:以继承的方法,重载 " int " 型别转换运算拟,使它能转换字串中的第一个数字。
A6:须引入 class NString : public string { public: operator int(); };
NString::operator int() { string num("0123456789"),temp; //所有合法的数字 int val=0;
//取得第一个数字的位置 unsigned int start = find_first_of(num,0); unsigned int end = find_first_not_of(num,start); temp = substr(start,(end-start));
//转换字串成整数 for (unsigned int i=0;i { val += (temp[i] - '0'); //利用圈来取得每一个字元的数字 val *= 10; //取得後进位,但个位数会移到十位数 } //除 10 把个位数拉回 if ( at(start-1) == '-' ) return -val/10; //数字前一个位置是否为负号 return val/10; } --------------------------------------------
上一页 [1] [2]
|
|
|