在C++中,你可以使用std::ostringstream
和std::setw
来格式化电话号码。为了支持国际电话号码,你可以考虑使用第三方库,如libphonenumber
。
以下是一个使用std::ostringstream
的示例:
#include <iostream>
#include <sstream>
#include <iomanip>
std::string formatPhoneNumber(const std::string& phoneNumber) {
std::ostringstream oss;
oss << std::setw(3) << std::setfill('0') << phoneNumber.substr(0, 3)
<< "-" << std::setw(3) << std::setfill('0') << phoneNumber.substr(3, 3)
<< "-" << std::setw(4) << std::setfill('0') << phoneNumber.substr(6);
return oss.str();
}
int main() {
std::string phoneNumber = "+1-234-567-8901";
std::string formattedPhoneNumber = formatPhoneNumber(phoneNumber);
std::cout << "Formatted phone number: " << formattedPhoneNumber << std::endl;
return 0;
}
这个示例将电话号码格式化为+1-234-567-8901
的形式。
如果你需要处理更复杂的国际电话号码,建议使用libphonenumber
库。这个库可以帮助你解析、格式化和验证电话号码。要使用libphonenumber
,你需要先安装它,然后在你的项目中包含相应的头文件。以下是一个简单的示例:
#include <iostream>
#include <string>
#include <phonenumbers/phonenumberutil.h>
#include <phonenumbers/phonenumber.h>
std::string formatPhoneNumber(const std::string& phoneNumber) {
phonenumbers::PhoneNumberUtil* util = phonenumbers::PhoneNumberUtil::GetInstance();
phonenumbers::PhoneNumberFormat format = phonenumbers::PhoneNumberFormat::INTERNATIONAL;
phonenumbers::PhoneNumber phoneNumberObj = util->Parse(phoneNumber, "US");
return util->Format(phoneNumberObj, format);
}
int main() {
std::string phoneNumber = "+1-234-567-8901";
std::string formattedPhoneNumber = formatPhoneNumber(phoneNumber);
std::cout << "Formatted phone number: " << formattedPhoneNumber << std::endl;
return 0;
}
这个示例同样将电话号码格式化为+1-234-567-8901
的形式。注意,你需要在你的项目中安装libphonenumber
库并链接相应的库文件。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。