数学を使用して、番号の市外局番と地域交換コードを計算できます。
6152222222 / 10000
最後の4桁を削除して、615222
- さらに除算すると、次の
1000
ようになります615
。除算の余りを取ると、が1000
得られます222
。
int
電話番号を表すためにを使用すると、などのよりエキゾチックな電話番号を保存する機能が制限されることに注意してください1-800-SOMETHING
。追加の検証でカプセル化するクラスを使用するstring
ことは、より良い代替手段であることが証明される場合があります。
class phone_number {
string phone;
public:
phone_number(const string& p) {
// validate p...
if (p.size() != 10) {
// Do something violent here...
cerr << "The phone number is incorrect." << endl;
}
// Validate more things about the number before the assignment...
phone = p;
}
friend ostream& operator<<(ostream &os, const phone_number& p);
};
ostream& operator<<(ostream &os, const phone_number& pn) {
const string &p(pn.phone);
os << "(" << p.substr(0, 3) << ")" << p.substr(3, 3) << "-" << p.substr(6);
return os;
}
int main() {
phone_number p = phone_number("6152784567");
cout << p << endl;
return 0;
}
これにより、ideoneで期待される出力が生成されます。