これは、vs2010expressで記述された正規表現を使用してこれを行う方法の簡単な例です。これは解析中です。後でMarcが書いたようにColorHelperを使用してください。
#include <string>
#include <regex>
bool GetARGBFromS(const std::string& s, int& a, int& r, int& g, int& b) {
try {
std::smatch m;
if ( regex_search(s, m, std::regex("#([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})")) ) {
a = std::stoi(m[1].str(), 0, 16);
r = std::stoi(m[2].str(), 0, 16);
g = std::stoi(m[3].str(), 0, 16);
b = std::stoi(m[4].str(), 0, 16);
}
else
return false;
}
catch(...){ /*should catch/report specific exceptions, but thats just example*/ return false; }
return true;
}
int main() {
int a,r,g,b;
if ( GetARGBFromS("#FF448DCA", a, r, g, b) )
{}
return 0;
}